aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-10-01 09:20:35 +0100
committerGitHub <noreply@github.com>2022-10-01 09:20:35 +0100
commit7b881c334a869bf0ed870bc47589f23f845bbe15 (patch)
tree7538948dacf2c9f8fe04a48b4c36c401a3fb8f8d
parent3a6ff5451bbfc7490cd37ffc65d754de2df92e63 (diff)
parentfa81862d65fa9a2b4f1e70bf31092f7dc319543d (diff)
downloadperlweeklychallenge-club-7b881c334a869bf0ed870bc47589f23f845bbe15.tar.gz
perlweeklychallenge-club-7b881c334a869bf0ed870bc47589f23f845bbe15.tar.bz2
perlweeklychallenge-club-7b881c334a869bf0ed870bc47589f23f845bbe15.zip
Merge pull request #6815 from simbabque/challenge-184
Challenge 184
-rw-r--r--challenge-184/julien-fiegehenn/perl/ch-1.pl21
-rw-r--r--challenge-184/julien-fiegehenn/perl/ch-2.pl34
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-184/julien-fiegehenn/perl/ch-1.pl b/challenge-184/julien-fiegehenn/perl/ch-1.pl
new file mode 100644
index 0000000000..f9acd3099b
--- /dev/null
+++ b/challenge-184/julien-fiegehenn/perl/ch-1.pl
@@ -0,0 +1,21 @@
+#!perl
+use strict;
+use warnings;
+
+sub replace {
+ my $i = 0;
+ return map s/^../sprintf('%02d',$i++)/er, @_;
+}
+
+use Test::More;
+
+is_deeply(
+ [ replace( 'ab1234', 'cd5678', 'ef1342' ) ],
+ [ '001234', '015678', '021342' ], 'first example'
+);
+is_deeply(
+ [ replace( 'pq1122', 'rs3334' ) ], [ '001122', '013334' ],
+ 'second example'
+);
+
+done_testing; \ No newline at end of file
diff --git a/challenge-184/julien-fiegehenn/perl/ch-2.pl b/challenge-184/julien-fiegehenn/perl/ch-2.pl
new file mode 100644
index 0000000000..7e4e8c8987
--- /dev/null
+++ b/challenge-184/julien-fiegehenn/perl/ch-2.pl
@@ -0,0 +1,34 @@
+#!perl
+use strict;
+use warnings;
+
+sub array_split {
+ my @strings = @_;
+ my ( @numbers, @letters );
+ foreach my $string (@strings) {
+ push @numbers, [];
+ push @letters, [];
+ foreach my $char ( split /\s/, $string ) {
+ push @{ ( $char =~ m/\d/ ? @numbers : @letters )[-1] }, $char;
+ }
+ pop @numbers unless scalar @{ $numbers[-1] };
+ pop @letters unless scalar @{ $letters[-1] };
+ }
+ return \@numbers, \@letters;
+}
+
+use Test::More;
+use Test::Deep;
+
+cmp_deeply(
+ [ array_split( 'a 1 2 b 0', '3 c 4 d' ) ],
+ [ [ [ 1, 2, 0 ], [ 3, 4 ] ], [ [ 'a', 'b' ], [ 'c', 'd' ] ] ],
+ 'first example'
+);
+cmp_deeply(
+ [ array_split( '1 2', 'p q r', 's 3', '4 5 t' ) ],
+ [ [ [ 1, 2 ], [3], [ 4, 5 ] ], [ [ 'p', 'q', 'r' ], ['s'], ['t'] ] ],
+ 'second example'
+);
+
+done_testing; \ No newline at end of file