aboutsummaryrefslogtreecommitdiff
path: root/challenge-073/arne-sommer/perl/ch-1.pl
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-08-15 00:01:52 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-08-15 00:01:52 +0100
commit34f2cfddb2425c2c444ee69a121139127c219ece (patch)
treeff6928d1532e655d5ae732b17b0ba67fd99342fe /challenge-073/arne-sommer/perl/ch-1.pl
parent5630d4ba0b2fdd9762cbceb0f276811a5e4f469f (diff)
downloadperlweeklychallenge-club-34f2cfddb2425c2c444ee69a121139127c219ece.tar.gz
perlweeklychallenge-club-34f2cfddb2425c2c444ee69a121139127c219ece.tar.bz2
perlweeklychallenge-club-34f2cfddb2425c2c444ee69a121139127c219ece.zip
- Added solutions by Arne Sommer.
Diffstat (limited to 'challenge-073/arne-sommer/perl/ch-1.pl')
-rwxr-xr-xchallenge-073/arne-sommer/perl/ch-1.pl25
1 files changed, 25 insertions, 0 deletions
diff --git a/challenge-073/arne-sommer/perl/ch-1.pl b/challenge-073/arne-sommer/perl/ch-1.pl
new file mode 100755
index 0000000000..9e43f35bb2
--- /dev/null
+++ b/challenge-073/arne-sommer/perl/ch-1.pl
@@ -0,0 +1,25 @@
+#! /usr/bin/env perl
+
+use strict;
+use feature 'say';
+use Getopt::Long;
+use List::Util 'min';
+use Perl6::Junction 'all';
+
+my $verbose = 0;
+
+GetOptions("verbose" => \$verbose);
+
+die 'Specify $S and @A' unless @ARGV;
+
+my ($S, @A) = @ARGV;
+
+die '$S must be an integer >= 1' unless int($S) == $S && $S >= 1;
+die '@A must contain integers only' unless all(@A) == qr/^\d+$/;
+
+map { say ": (" . join(", ", @A[$_ .. $_ + $S -1]) . ") min -> " . min @A[$_ .. $_ + $S -1] }
+(0 .. @A - $S) if $verbose;
+
+say "(",
+ join (", ", map { min @A[$_ .. $_ + $S -1] } (0 .. @A - $S)),
+ ")";