aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-01-29 20:16:45 +0100
committerAbigail <abigail@abigail.be>2021-01-30 17:51:26 +0100
commitdd53a9936ba3e10841194b2c50134ecbde1060a1 (patch)
tree3323853a781e9ddbf2a68f7d1831d74fb580a8c1
parent057ae84b2540d506fcdafaa19692538f7c2e18d5 (diff)
downloadperlweeklychallenge-club-dd53a9936ba3e10841194b2c50134ecbde1060a1.tar.gz
perlweeklychallenge-club-dd53a9936ba3e10841194b2c50134ecbde1060a1.tar.bz2
perlweeklychallenge-club-dd53a9936ba3e10841194b2c50134ecbde1060a1.zip
Improvements for the Perl solution of week 97, part 1
-rw-r--r--challenge-097/abigail/perl/ch-1.pl13
1 files changed, 10 insertions, 3 deletions
diff --git a/challenge-097/abigail/perl/ch-1.pl b/challenge-097/abigail/perl/ch-1.pl
index 7558150f4d..b73991738c 100644
--- a/challenge-097/abigail/perl/ch-1.pl
+++ b/challenge-097/abigail/perl/ch-1.pl
@@ -17,16 +17,23 @@ use experimental 'lexical_subs';
# Run as: perl ch-1.pl -s SHIFT < input-file
#
+my $NR_OF_LETTERS = 26;
+my $ORD_A = ord ('A');
+
use Getopt::Long;
GetOptions 's=i' => \my $shift;
-die "-s option required" unless defined $shift;
+die "-s SHIFT option required" unless defined $shift;
-$shift %= 26;
+$shift %= $NR_OF_LETTERS;
while (<>) {
chomp;
- s/([A-Z])/my $ch = ord ($1) - $shift; $ch += 26 if $ch < 65; chr $ch/eg;
+ s {([A-Z])}
+ { my $ch = ord ($1) - $shift;
+ $ch += $NR_OF_LETTERS if $ch < $ORD_A;
+ chr $ch
+ }eg;
say;
}