aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-06-04 22:18:34 +0100
committerGitHub <noreply@github.com>2023-06-04 22:18:34 +0100
commit49fd1c574eff95574cc8a410f7764eeed8edd0e3 (patch)
tree0a54fc80cdf167e93a996878920a98d344ff164f
parent1eb1d578a5c7f192dca4dac31a0ba0b9fec630b3 (diff)
parentfa97ecd56d4adbabd4879dc24110d019624a3113 (diff)
downloadperlweeklychallenge-club-49fd1c574eff95574cc8a410f7764eeed8edd0e3.tar.gz
perlweeklychallenge-club-49fd1c574eff95574cc8a410f7764eeed8edd0e3.tar.bz2
perlweeklychallenge-club-49fd1c574eff95574cc8a410f7764eeed8edd0e3.zip
Merge pull request #8176 from lancew/lw-challenge-219-perl
Perl version for Challenge 219wq
-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;