diff options
| author | user-person <60802990+user-person@users.noreply.github.com> | 2020-02-09 02:43:36 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-09 02:43:36 -0500 |
| commit | 60787ac6d89c436b85d52a0485da1c516fad52e3 (patch) | |
| tree | 89606bf82743e84cb74c32f19f1d4d405f74c4af | |
| parent | 151d458b10d4ca145abbfcc45b801504618a69f6 (diff) | |
| download | perlweeklychallenge-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.pl | 57 |
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 |
