aboutsummaryrefslogtreecommitdiff
path: root/challenge-068
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-07-12 18:35:17 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-07-12 18:35:17 +0100
commiteceaf492f704f7b706b8ccd0eda7d5ad73d066df (patch)
tree424d4deebbf77f37f11a11d2abdb3b9b5c425882 /challenge-068
parentc266eeb66e3301949de4a97079b4203bd2170aed (diff)
downloadperlweeklychallenge-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.pl29
-rw-r--r--challenge-068/mohammad-anwar/perl/ch-2a.pl34
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);
-}