aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorboblied <boblied@gmail.com>2023-01-29 17:30:32 -0600
committerboblied <boblied@gmail.com>2023-01-29 17:32:55 -0600
commitbdd100f14efbe2ecc313015447cf6215cab92fbb (patch)
tree0ecec839e73147795eff9107dd9f4fa35ce04d94
parent1e338164934704f0a21aca1ff125bff0d3e0e52e (diff)
downloadperlweeklychallenge-club-bdd100f14efbe2ecc313015447cf6215cab92fbb.tar.gz
perlweeklychallenge-club-bdd100f14efbe2ecc313015447cf6215cab92fbb.tar.bz2
perlweeklychallenge-club-bdd100f14efbe2ecc313015447cf6215cab92fbb.zip
Week 180 Task 2
-rw-r--r--challenge-180/bob-lied/perl/ch-2.pl45
1 files changed, 45 insertions, 0 deletions
diff --git a/challenge-180/bob-lied/perl/ch-2.pl b/challenge-180/bob-lied/perl/ch-2.pl
new file mode 100644
index 0000000000..a07e89d86e
--- /dev/null
+++ b/challenge-180/bob-lied/perl/ch-2.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/env perl
+# vim:set ts=4 sw=4 sts=4 et ai wm=0 nu:
+#=============================================================================
+# ch-2.pl Perl Weekly Challenge Week 180 Task 2 Trim List
+#=============================================================================
+# Copyright (c) 2023, Bob Lied
+#=============================================================================
+# You are given list of numbers, @n and an integer $i.
+# Write a script to trim the given list where element is less than or equal
+# to the given integer.
+# Example 1 Input: @n = (1,4,2,3,5) and $i = 3
+# Output: (4,5)
+# Example 2 Input: @n = (9,0,6,2,3,8,5) and $i = 4
+# Output: (9,6,8,5)
+#=============================================================================
+
+use v5.36;
+
+use Getopt::Long;
+my $Verbose = 0;
+my $DoTest = 0;
+
+my $i = 0;
+
+GetOptions("test" => \$DoTest, "verbose" => \$Verbose, "i:i" => \$i);
+exit(!runTest()) if $DoTest;
+
+say "(", join(",", trimList( i => $i, n => \@ARGV )->@*), ")";
+
+sub trimList(%arg)
+{
+ return [ grep { $_ > $arg{i} } $arg{n}->@* ];
+}
+
+sub runTest
+{
+ use Test2::V0;
+
+ is( trimList( n => [1,4,2,3,5], i => 3 ), [4,5], "Example 1");
+ is( trimList( n => [9,0,6,2,3,8,5], i => 4 ), [9,6,8,5], "Example 2");
+ is( trimList( n => [1,4,2,3,5], i => 6 ), [], "None");
+ is( trimList( n => [1,4,2,3], i => 0 ), [1,4,2,3], "All");
+
+ done_testing;
+}