aboutsummaryrefslogtreecommitdiff
path: root/challenge-045
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-01-31 15:41:15 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-01-31 15:41:15 +0000
commitbb59e1f0b571d5968ec946e73f34b3379ec27adf (patch)
treece6cdfc87b1de61675122263bf60e7992533ed3b /challenge-045
parent0023167d0069bebc6ca109e0f48d99b2fd04e6ac (diff)
downloadperlweeklychallenge-club-bb59e1f0b571d5968ec946e73f34b3379ec27adf.tar.gz
perlweeklychallenge-club-bb59e1f0b571d5968ec946e73f34b3379ec27adf.tar.bz2
perlweeklychallenge-club-bb59e1f0b571d5968ec946e73f34b3379ec27adf.zip
- Added solutions by Arne Sommer.
Diffstat (limited to 'challenge-045')
-rw-r--r--challenge-045/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-045/arne-sommer/perl/ch-1.pl25
-rwxr-xr-xchallenge-045/arne-sommer/perl/ch-2.pl15
-rwxr-xr-xchallenge-045/arne-sommer/perl/ch-2a.pl8
-rwxr-xr-xchallenge-045/arne-sommer/perl/source-dumper-perl15
-rwxr-xr-xchallenge-045/arne-sommer/perl/source-dumper-perl-module8
-rwxr-xr-xchallenge-045/arne-sommer/perl/square-secret-code-perl25
-rwxr-xr-xchallenge-045/arne-sommer/raku/ch-1.p624
-rwxr-xr-xchallenge-045/arne-sommer/raku/ch-2.p63
-rwxr-xr-xchallenge-045/arne-sommer/raku/source-dumper3
-rwxr-xr-xchallenge-045/arne-sommer/raku/square-secret-code24
11 files changed, 151 insertions, 0 deletions
diff --git a/challenge-045/arne-sommer/blog.txt b/challenge-045/arne-sommer/blog.txt
new file mode 100644
index 0000000000..75edc1c4a1
--- /dev/null
+++ b/challenge-045/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/square-dumper.html
diff --git a/challenge-045/arne-sommer/perl/ch-1.pl b/challenge-045/arne-sommer/perl/ch-1.pl
new file mode 100755
index 0000000000..931ad0badf
--- /dev/null
+++ b/challenge-045/arne-sommer/perl/ch-1.pl
@@ -0,0 +1,25 @@
+#! /usr/bin/env perl
+
+my $string = $ARGV[0] || "The quick brown fox jumps over the lazy dog";
+
+$string =~ tr/ //d;
+
+my @a = split(//, lc $string);
+
+@a.shift;
+@a.pop;
+
+for my $word (0 .. 7)
+{
+ my $index = $word;
+ while (1)
+ {
+ defined $a[$index]
+ ? print $a[$index]
+ : print(" ") && last;
+
+ $index += 8;
+ }
+}
+
+print "\n";
diff --git a/challenge-045/arne-sommer/perl/ch-2.pl b/challenge-045/arne-sommer/perl/ch-2.pl
new file mode 100755
index 0000000000..a072963813
--- /dev/null
+++ b/challenge-045/arne-sommer/perl/ch-2.pl
@@ -0,0 +1,15 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+
+my $file = $0;
+
+if (open(my $fh, $file))
+{
+ while (my $row = <$fh>)
+ {
+ print $row;
+ }
+ close $fh;
+}
diff --git a/challenge-045/arne-sommer/perl/ch-2a.pl b/challenge-045/arne-sommer/perl/ch-2a.pl
new file mode 100755
index 0000000000..9750b8a93e
--- /dev/null
+++ b/challenge-045/arne-sommer/perl/ch-2a.pl
@@ -0,0 +1,8 @@
+#! /usr/bin/env perl
+
+use File::Slurper 'read_text';
+
+use strict;
+use warnings;
+
+print read_text($0);
diff --git a/challenge-045/arne-sommer/perl/source-dumper-perl b/challenge-045/arne-sommer/perl/source-dumper-perl
new file mode 100755
index 0000000000..a072963813
--- /dev/null
+++ b/challenge-045/arne-sommer/perl/source-dumper-perl
@@ -0,0 +1,15 @@
+#! /usr/bin/env perl
+
+use strict;
+use warnings;
+
+my $file = $0;
+
+if (open(my $fh, $file))
+{
+ while (my $row = <$fh>)
+ {
+ print $row;
+ }
+ close $fh;
+}
diff --git a/challenge-045/arne-sommer/perl/source-dumper-perl-module b/challenge-045/arne-sommer/perl/source-dumper-perl-module
new file mode 100755
index 0000000000..9750b8a93e
--- /dev/null
+++ b/challenge-045/arne-sommer/perl/source-dumper-perl-module
@@ -0,0 +1,8 @@
+#! /usr/bin/env perl
+
+use File::Slurper 'read_text';
+
+use strict;
+use warnings;
+
+print read_text($0);
diff --git a/challenge-045/arne-sommer/perl/square-secret-code-perl b/challenge-045/arne-sommer/perl/square-secret-code-perl
new file mode 100755
index 0000000000..931ad0badf
--- /dev/null
+++ b/challenge-045/arne-sommer/perl/square-secret-code-perl
@@ -0,0 +1,25 @@
+#! /usr/bin/env perl
+
+my $string = $ARGV[0] || "The quick brown fox jumps over the lazy dog";
+
+$string =~ tr/ //d;
+
+my @a = split(//, lc $string);
+
+@a.shift;
+@a.pop;
+
+for my $word (0 .. 7)
+{
+ my $index = $word;
+ while (1)
+ {
+ defined $a[$index]
+ ? print $a[$index]
+ : print(" ") && last;
+
+ $index += 8;
+ }
+}
+
+print "\n";
diff --git a/challenge-045/arne-sommer/raku/ch-1.p6 b/challenge-045/arne-sommer/raku/ch-1.p6
new file mode 100755
index 0000000000..d56254c4b1
--- /dev/null
+++ b/challenge-045/arne-sommer/raku/ch-1.p6
@@ -0,0 +1,24 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($string is copy = "The quick brown fox jumps over the lazy dog", :$verbose);
+
+$string ~~ tr/" "//;
+
+say ": { $string.lc }" if $verbose;
+
+my @a = $string.lc.comb;
+
+for 0 .. 7 -> $word
+{
+ my $index = $word;
+ loop
+ {
+ @a[$index]:exists
+ ?? print @a[$index]
+ !! ( print " "; last);
+
+ $index += 8;
+ }
+}
+
+say "";
diff --git a/challenge-045/arne-sommer/raku/ch-2.p6 b/challenge-045/arne-sommer/raku/ch-2.p6
new file mode 100755
index 0000000000..3a57fa4276
--- /dev/null
+++ b/challenge-045/arne-sommer/raku/ch-2.p6
@@ -0,0 +1,3 @@
+#! /usr/bin/env raku
+
+print $?FILE.IO.slurp;
diff --git a/challenge-045/arne-sommer/raku/source-dumper b/challenge-045/arne-sommer/raku/source-dumper
new file mode 100755
index 0000000000..3a57fa4276
--- /dev/null
+++ b/challenge-045/arne-sommer/raku/source-dumper
@@ -0,0 +1,3 @@
+#! /usr/bin/env raku
+
+print $?FILE.IO.slurp;
diff --git a/challenge-045/arne-sommer/raku/square-secret-code b/challenge-045/arne-sommer/raku/square-secret-code
new file mode 100755
index 0000000000..d56254c4b1
--- /dev/null
+++ b/challenge-045/arne-sommer/raku/square-secret-code
@@ -0,0 +1,24 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($string is copy = "The quick brown fox jumps over the lazy dog", :$verbose);
+
+$string ~~ tr/" "//;
+
+say ": { $string.lc }" if $verbose;
+
+my @a = $string.lc.comb;
+
+for 0 .. 7 -> $word
+{
+ my $index = $word;
+ loop
+ {
+ @a[$index]:exists
+ ?? print @a[$index]
+ !! ( print " "; last);
+
+ $index += 8;
+ }
+}
+
+say "";