aboutsummaryrefslogtreecommitdiff
path: root/challenge-131/arne-sommer/perl/coar-perl
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-09-25 22:32:00 +0100
committerGitHub <noreply@github.com>2021-09-25 22:32:00 +0100
commit7ff4cc676463bf20f3339ca46a19e2804e35ca62 (patch)
tree80786a4d022fa4cd54ab45e9f6d3ec1427558ddb /challenge-131/arne-sommer/perl/coar-perl
parent45e00f146e9e05761babf3d140600df918b976d5 (diff)
parentf239fe6bd297ab1822019cc046edaf13cdea0f4a (diff)
downloadperlweeklychallenge-club-7ff4cc676463bf20f3339ca46a19e2804e35ca62.tar.gz
perlweeklychallenge-club-7ff4cc676463bf20f3339ca46a19e2804e35ca62.tar.bz2
perlweeklychallenge-club-7ff4cc676463bf20f3339ca46a19e2804e35ca62.zip
Merge pull request #4922 from arnesom/branch-for-challenge-131
Arne Sommer
Diffstat (limited to 'challenge-131/arne-sommer/perl/coar-perl')
-rwxr-xr-xchallenge-131/arne-sommer/perl/coar-perl44
1 files changed, 44 insertions, 0 deletions
diff --git a/challenge-131/arne-sommer/perl/coar-perl b/challenge-131/arne-sommer/perl/coar-perl
new file mode 100755
index 0000000000..fdd84bae37
--- /dev/null
+++ b/challenge-131/arne-sommer/perl/coar-perl
@@ -0,0 +1,44 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+
+use Getopt::Long;
+use Perl6::Junction 'all';
+
+my $verbose = 0;
+
+GetOptions("verbose" => \$verbose);
+
+die "Integers only" unless all(@ARGV) == qr/^\d+$/;
+
+my @result;
+
+my $current = shift(@ARGV) // die "No numbers";
+my @current = ($current);
+
+say ": Candidate: $current" if $verbose;
+
+for my $i (@ARGV)
+{
+ if ($i > $current +1)
+ {
+ my @copy = @current;
+ push(@result, \@copy);
+ say ": Push: [", join(",", @current), "]" if $verbose;
+ @current = ();
+ }
+
+ die "Not sorted ($current < $i)" unless $i > $current;
+
+ say ": Candidate: $i" if $verbose;
+
+ push(@current, $i);
+ $current = $i;
+}
+
+push(@result, \@current) if @current;
+
+say "(", join(", ", map { "[" . join(", ", @$_) . "]" } @result), ")";
+