aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlancew <lw@judocoach.com>2023-06-04 11:17:57 +0100
committerlancew <lw@judocoach.com>2023-06-04 11:18:03 +0100
commitfa97ecd56d4adbabd4879dc24110d019624a3113 (patch)
tree4b2e7072a94ec450e64ae1219baceee0546c3153
parent7990d15d06fe7edccb9b81de5b3614422bcc3ee4 (diff)
downloadperlweeklychallenge-club-fa97ecd56d4adbabd4879dc24110d019624a3113.tar.gz
perlweeklychallenge-club-fa97ecd56d4adbabd4879dc24110d019624a3113.tar.bz2
perlweeklychallenge-club-fa97ecd56d4adbabd4879dc24110d019624a3113.zip
Perl version for Challenge 219wq
My thoughts are with you Mohammad and your family.
-rw-r--r--challenge-219/lance-wicks/perl/ch-1.pl13
-rw-r--r--challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm16
-rw-r--r--challenge-219/lance-wicks/perl/t/01-sorted-squares.t15
3 files changed, 44 insertions, 0 deletions
diff --git a/challenge-219/lance-wicks/perl/ch-1.pl b/challenge-219/lance-wicks/perl/ch-1.pl
new file mode 100644
index 0000000000..a395832ee2
--- /dev/null
+++ b/challenge-219/lance-wicks/perl/ch-1.pl
@@ -0,0 +1,13 @@
+use strict;
+use warnings;
+
+use lib './lib';
+use My::Sorted::Square;
+
+my $list_txt = join ", ", @ARGV;
+print "Input: \@list = ($list_txt)\n";
+
+my @squares = My::Sorted::Square->run(@ARGV);
+my $output_txt = join ", ", @squares;
+print "Output: ($output_txt)\n";
+
diff --git a/challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm b/challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm
new file mode 100644
index 0000000000..33077048ea
--- /dev/null
+++ b/challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm
@@ -0,0 +1,16 @@
+package My::Sorted::Square;
+use Moo;
+
+sub run {
+ my ( $self, @list ) = @_;
+
+ my @squared_list;
+ for my $num (@list) {
+ push @squared_list, $num**2;
+ }
+
+ @squared_list = sort { $a <=> $b } @squared_list;
+ return @squared_list;
+}
+
+1;
diff --git a/challenge-219/lance-wicks/perl/t/01-sorted-squares.t b/challenge-219/lance-wicks/perl/t/01-sorted-squares.t
new file mode 100644
index 0000000000..801b4739b1
--- /dev/null
+++ b/challenge-219/lance-wicks/perl/t/01-sorted-squares.t
@@ -0,0 +1,15 @@
+use Test2::V0 -target => 'My::Sorted::Square';
+
+subtest 'Example 1' => sub {
+ my @list = ( -2, -1, 0, 3, 4 );
+ my @squares = $CLASS->run(@list);
+ is \@squares, [ 0, 1, 4, 9, 16 ];
+};
+
+subtest 'Example 2' => sub {
+ my @list = ( 5, -4, -1, 3, 6 );
+ my @squares = $CLASS->run(@list);
+ is \@squares, [ 1, 9, 16, 25, 36 ];
+};
+
+done_testing;