aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2020-01-30 16:11:09 +0000
committerRoger Bell_West <roger@firedrake.org>2020-01-30 16:11:09 +0000
commit1ebecd71bd0a34b6bf94b246de841a78b3fe3758 (patch)
treed07601740f971912c5ace001ef18a620286d68c0
parentfcc1f0519c6131b86c68eb479f76e1dac99e67ae (diff)
downloadperlweeklychallenge-club-1ebecd71bd0a34b6bf94b246de841a78b3fe3758.tar.gz
perlweeklychallenge-club-1ebecd71bd0a34b6bf94b246de841a78b3fe3758.tar.bz2
perlweeklychallenge-club-1ebecd71bd0a34b6bf94b246de841a78b3fe3758.zip
Solutions to #45. Hope you feel better soon!
-rwxr-xr-xchallenge-045/roger-bell-west/perl5/ch-1-decode.pl22
-rwxr-xr-xchallenge-045/roger-bell-west/perl5/ch-1.pl28
-rwxr-xr-xchallenge-045/roger-bell-west/perl5/ch-2.pl7
-rwxr-xr-xchallenge-045/roger-bell-west/perl6/ch-1.p626
-rwxr-xr-xchallenge-045/roger-bell-west/perl6/ch-2.p66
5 files changed, 89 insertions, 0 deletions
diff --git a/challenge-045/roger-bell-west/perl5/ch-1-decode.pl b/challenge-045/roger-bell-west/perl5/ch-1-decode.pl
new file mode 100755
index 0000000000..adc0d37376
--- /dev/null
+++ b/challenge-045/roger-bell-west/perl5/ch-1-decode.pl
@@ -0,0 +1,22 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+my @in;
+while (<>) {
+ chomp;
+ push @in,split ' ',$_;
+}
+
+my @out;
+foreach my $n (0..length($in[0])-1) {
+ foreach my $w (@in) {
+ if (length($w)<$n+1) {
+ last;
+ }
+ push @out,substr($w,$n,1);
+ }
+}
+
+print join('',@out),"\n";
diff --git a/challenge-045/roger-bell-west/perl5/ch-1.pl b/challenge-045/roger-bell-west/perl5/ch-1.pl
new file mode 100755
index 0000000000..8ac68094ee
--- /dev/null
+++ b/challenge-045/roger-bell-west/perl5/ch-1.pl
@@ -0,0 +1,28 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+use Getopt::Std;
+
+my %o=(n => 8);
+
+getopts('n:',\%o);
+
+my $in='';
+while (<>) {
+ s/\s+//g;
+ $in.=$_;
+}
+
+my $l=length($in)-1;
+my @out;
+foreach my $c (0..$o{n}-1) {
+ my $out;
+ for (my $k=$c;$k<=$l;$k+=$o{n}) {
+ $out.=substr($in,$k,1);
+ }
+ push @out,$out;
+}
+
+print join(' ',@out),"\n";
diff --git a/challenge-045/roger-bell-west/perl5/ch-2.pl b/challenge-045/roger-bell-west/perl5/ch-2.pl
new file mode 100755
index 0000000000..05cc82fffd
--- /dev/null
+++ b/challenge-045/roger-bell-west/perl5/ch-2.pl
@@ -0,0 +1,7 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+open F,$0;
+print <F>;
diff --git a/challenge-045/roger-bell-west/perl6/ch-1.p6 b/challenge-045/roger-bell-west/perl6/ch-1.p6
new file mode 100755
index 0000000000..717371c15f
--- /dev/null
+++ b/challenge-045/roger-bell-west/perl6/ch-1.p6
@@ -0,0 +1,26 @@
+#! /usr/bin/perl6
+
+my $n=8;
+
+my $in='';
+
+for lines() {
+ .chomp;
+ my $t=$_;
+ $t ~~ s:g/\s+//;
+ $in~=$t;
+}
+
+my $l=chars($in)-1;
+my @out;
+for (0..$n-1) -> $c {
+ my $out;
+ my $k=$c;
+ while ($k <= $l) {
+ $out~=substr($in,$k,1);
+ $k+=$n;
+ }
+ push @out,$out;
+}
+
+say @out.join(' '); \ No newline at end of file
diff --git a/challenge-045/roger-bell-west/perl6/ch-2.p6 b/challenge-045/roger-bell-west/perl6/ch-2.p6
new file mode 100755
index 0000000000..046b37b0c7
--- /dev/null
+++ b/challenge-045/roger-bell-west/perl6/ch-2.p6
@@ -0,0 +1,6 @@
+#! /usr/bin/perl6
+
+my $f=open :r,$*PROGRAM-NAME;
+for $f.lines {
+ say $_;
+}