diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-10-01 09:20:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-01 09:20:35 +0100 |
| commit | 7b881c334a869bf0ed870bc47589f23f845bbe15 (patch) | |
| tree | 7538948dacf2c9f8fe04a48b4c36c401a3fb8f8d | |
| parent | 3a6ff5451bbfc7490cd37ffc65d754de2df92e63 (diff) | |
| parent | fa81862d65fa9a2b4f1e70bf31092f7dc319543d (diff) | |
| download | perlweeklychallenge-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.pl | 21 | ||||
| -rw-r--r-- | challenge-184/julien-fiegehenn/perl/ch-2.pl | 34 |
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 |
