aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruser-person <60802990+user-person@users.noreply.github.com>2020-02-09 02:43:36 -0500
committerGitHub <noreply@github.com>2020-02-09 02:43:36 -0500
commit60787ac6d89c436b85d52a0485da1c516fad52e3 (patch)
tree89606bf82743e84cb74c32f19f1d4d405f74c4af
parent151d458b10d4ca145abbfcc45b801504618a69f6 (diff)
downloadperlweeklychallenge-club-60787ac6d89c436b85d52a0485da1c516fad52e3.tar.gz
perlweeklychallenge-club-60787ac6d89c436b85d52a0485da1c516fad52e3.tar.bz2
perlweeklychallenge-club-60787ac6d89c436b85d52a0485da1c516fad52e3.zip
Create ch-1.pl
-rw-r--r--challenge-046/user-person/perl/ch-1.pl57
1 files changed, 57 insertions, 0 deletions
diff --git a/challenge-046/user-person/perl/ch-1.pl b/challenge-046/user-person/perl/ch-1.pl
new file mode 100644
index 0000000000..8b217948b8
--- /dev/null
+++ b/challenge-046/user-person/perl/ch-1.pl
@@ -0,0 +1,57 @@
+#!/usr/bin/perl
+
+###########################################################################
+# script name: ch-1.pl #
+# #
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-046/ #
+# #
+###########################################################################
+
+use strict;
+use warnings;
+use diagnostics;
+
+sub decode {
+ my $message = $_[0];
+ $message =~ s{ }{}g;
+ my $decodedString = '_' x index($message,"\n");
+ my @seen = ();
+ my $col = 0;
+
+ CHAR_LOOP:
+ foreach ( split //, $message ) {
+ if ( $_ eq "\n") {
+ $col = 0;
+ next CHAR_LOOP;
+ }
+ substr($decodedString,$col,1,$_) if ++$seen[$col]{$_} == 2;
+ ++$col;
+ }
+ return $decodedString;
+}
+
+my $message1 = <<'EOM'; # End of Message
+H x l 4 !
+c e - l o
+z e 6 l g
+H W l v R
+q 9 m # o
+EOM
+
+my $message2 = <<'EOM';
+P + 2 l ! a t o
+1 e 8 0 R $ 4 u
+5 - r ] + a > /
+P x w l b 3 k \
+2 e 3 5 R 8 y u
+< ! r ^ ( ) k 0
+EOM
+
+print decode($message1), "\n";
+print decode($message2), "\n";
+
+__END__
+ch-1.pl output:
+
+Hello
+PerlRaku