diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-07-12 18:35:17 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-07-12 18:35:17 +0100 |
| commit | eceaf492f704f7b706b8ccd0eda7d5ad73d066df (patch) | |
| tree | 424d4deebbf77f37f11a11d2abdb3b9b5c425882 /challenge-068 | |
| parent | c266eeb66e3301949de4a97079b4203bd2170aed (diff) | |
| download | perlweeklychallenge-club-eceaf492f704f7b706b8ccd0eda7d5ad73d066df.tar.gz perlweeklychallenge-club-eceaf492f704f7b706b8ccd0eda7d5ad73d066df.tar.bz2 perlweeklychallenge-club-eceaf492f704f7b706b8ccd0eda7d5ad73d066df.zip | |
- Tidied up Perl solutions.
Diffstat (limited to 'challenge-068')
| -rw-r--r-- | challenge-068/mohammad-anwar/perl/ch-2.pl | 29 | ||||
| -rw-r--r-- | challenge-068/mohammad-anwar/perl/ch-2a.pl | 34 |
2 files changed, 34 insertions, 29 deletions
diff --git a/challenge-068/mohammad-anwar/perl/ch-2.pl b/challenge-068/mohammad-anwar/perl/ch-2.pl index 9aaa8790a0..8b5868a119 100644 --- a/challenge-068/mohammad-anwar/perl/ch-2.pl +++ b/challenge-068/mohammad-anwar/perl/ch-2.pl @@ -15,10 +15,25 @@ use Moo; has v => (is => 'rw'); has c => (is => 'rw'); +sub show_link { + my ($self) = @_; + + + my $head = $self; + my @v = (); + while ($head->c) { + push @v, $head->v; + $head = $head->c; + } + push @v, $head->v; + + return sprintf("%s", join ' -> ', @v); +} + package main; my $list = $ARGV[0]//'1 -> 2 -> 3 -> 4 -> 5'; -print linked_list(reorder_list($list)), "\n"; +print reorder_list($list)->show_link, "\n"; # # @@ -60,15 +75,3 @@ sub reorder_list { return $head; } -sub linked_list { - my ($head) = @_; - - my @v = (); - while ($head->c) { - push @v, $head->v; - $head = $head->c; - } - push @v, $head->v; - - return sprintf("%s", join ' -> ', @v); -} diff --git a/challenge-068/mohammad-anwar/perl/ch-2a.pl b/challenge-068/mohammad-anwar/perl/ch-2a.pl index 4fea00d762..b8f5069519 100644 --- a/challenge-068/mohammad-anwar/perl/ch-2a.pl +++ b/challenge-068/mohammad-anwar/perl/ch-2a.pl @@ -15,17 +15,32 @@ use Moo; has v => (is => 'rw'); has c => (is => 'rw'); +sub show_link { + my ($self) = @_; + + + my $head = $self; + my @v = (); + while ($head->c) { + push @v, $head->v; + $head = $head->c; + } + push @v, $head->v; + + return sprintf("%s", join ' -> ', @v); +} + package main; use Test::More; -is( linked_list(reorder_list('1 -> 2 -> 3 -> 4')), +is( reorder_list('1 -> 2 -> 3 -> 4')->show_link, '1 -> 4 -> 2 -> 3', 'testing 1 -> 2 -> 3 -> 4' ); -is( linked_list(reorder_list('1 -> 2 -> 3 -> 4 -> 5')), +is( reorder_list('1 -> 2 -> 3 -> 4 -> 5')->show_link, '1 -> 5 -> 2 -> 4 -> 3', 'testing 1 -> 2 -> 3 -> 4 -> 5' ); -is( linked_list(reorder_list('1 -> 2 -> 3 -> 4 -> 5 -> 6')), +is( reorder_list('1 -> 2 -> 3 -> 4 -> 5 -> 6')->show_link, '1 -> 6 -> 2 -> 5 -> 3 -> 4', 'testing 1 -> 2 -> 3 -> 4 -> 5 -> 6' ); @@ -70,16 +85,3 @@ sub reorder_list { return $head; } - -sub linked_list { - my ($head) = @_; - - my @v = (); - while ($head->c) { - push @v, $head->v; - $head = $head->c; - } - push @v, $head->v; - - return sprintf("%s", join ' -> ', @v); -} |
