diff options
| author | boblied <boblied@gmail.com> | 2023-01-29 17:30:32 -0600 |
|---|---|---|
| committer | boblied <boblied@gmail.com> | 2023-01-29 17:32:55 -0600 |
| commit | bdd100f14efbe2ecc313015447cf6215cab92fbb (patch) | |
| tree | 0ecec839e73147795eff9107dd9f4fa35ce04d94 | |
| parent | 1e338164934704f0a21aca1ff125bff0d3e0e52e (diff) | |
| download | perlweeklychallenge-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.pl | 45 |
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; +} |
