aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-341/perlboy1967/perl/ch1.pl34
-rwxr-xr-xchallenge-341/perlboy1967/perl/ch2.pl33
2 files changed, 67 insertions, 0 deletions
diff --git a/challenge-341/perlboy1967/perl/ch1.pl b/challenge-341/perlboy1967/perl/ch1.pl
new file mode 100755
index 0000000000..a59ba86df6
--- /dev/null
+++ b/challenge-341/perlboy1967/perl/ch1.pl
@@ -0,0 +1,34 @@
+#!/bin/perl
+
+=pod
+
+L<https://theweeklychallenge.org/blog/perl-weekly-challenge-341#TASK1>
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 1: Broken Keyboard
+Submitted by: Mohammad Sajid Anwar
+
+You are given a string containing English letters only and also you are given broken keys.
+
+Write a script to return the total words in the given sentence can be typed completely.
+
+=cut
+
+use Test2::V0 qw(-no_srand);
+use exact 'v5.32', -signatures;
+
+sub brokenKeyboard ($str,@keys) {
+ my @w = split /\s+/,$str;
+ return scalar @w if (@keys == 0);
+ my $re = '['.join('',@keys).']';
+ scalar grep !/$re/i, @w;
+}
+
+is(brokenKeyboard('Hello World',qw(d)),1,'Example 1');
+is(brokenKeyboard('apple banana cherry',qw(a e)),0,'Example 2');
+is(brokenKeyboard('Coding is fun',qw()),3,'Example 3');
+is(brokenKeyboard('The Weekly Challenge',qw(ab)),2,'Example 4');
+is(brokenKeyboard('Perl and Python',qw(p)),1,'Example 5');
+
+done_testing;
diff --git a/challenge-341/perlboy1967/perl/ch2.pl b/challenge-341/perlboy1967/perl/ch2.pl
new file mode 100755
index 0000000000..f3dbfcc126
--- /dev/null
+++ b/challenge-341/perlboy1967/perl/ch2.pl
@@ -0,0 +1,33 @@
+#!/bin/perl
+
+=pod
+
+L<https://theweeklychallenge.org/blog/perl-weekly-challenge-341#TASK2>
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 2: Reverse Prefix
+Submitted by: Mohammad Sajid Anwar
+
+You are given a string, $str and a character in the given string, $char.
+
+Write a script to reverse the prefix upto the first occurrence of the given
+$char in the given string $str and return the new string.
+
+=cut
+
+use Test2::V0 qw(-no_srand);
+use exact 'v5.32', -signatures;
+
+sub reversePrefix ($str,$char) {
+ return reverse($1).$2 if ($str =~ m#^(.+?$char)(.*)#);
+ return $str;
+}
+
+is(reversePrefix('programming','g'),'gorpramming','Example 1');
+is(reversePrefix('hello','h'),'hello','Example 2');
+is(reversePrefix('abcdefghij','h'),'hgfedcbaij','Example 3');
+is(reversePrefix('reverse','s'),'srevere','Example 4');
+is(reversePrefix('perl','r'),'repl','Example 5');
+
+done_testing;