aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-002/simon-proctor/perl5/ch-1.sh1
-rw-r--r--challenge-002/simon-proctor/perl5/ch-2.pl16
-rw-r--r--challenge-002/simon-proctor/perl5/to-base-35.pl18
3 files changed, 35 insertions, 0 deletions
diff --git a/challenge-002/simon-proctor/perl5/ch-1.sh b/challenge-002/simon-proctor/perl5/ch-1.sh
new file mode 100644
index 0000000000..6055088ce0
--- /dev/null
+++ b/challenge-002/simon-proctor/perl5/ch-1.sh
@@ -0,0 +1 @@
+perl -E 'my $v = shift @ARGV;$v =~ s!^0+!!;say $v'
diff --git a/challenge-002/simon-proctor/perl5/ch-2.pl b/challenge-002/simon-proctor/perl5/ch-2.pl
new file mode 100644
index 0000000000..7354af499c
--- /dev/null
+++ b/challenge-002/simon-proctor/perl5/ch-2.pl
@@ -0,0 +1,16 @@
+use strict;
+use v5.10;
+
+my @in = split "", ( shift @ARGV );
+my $out = 0;
+
+my $c = 0;
+my %map = map { $_ => $c++ } (0..9,"A".."Y");
+
+my $mult = 1;
+for my $char ( reverse @in ) {
+ $out += ( $mult * $map{$char} );
+ $mult *= 35;
+}
+
+say $out;
diff --git a/challenge-002/simon-proctor/perl5/to-base-35.pl b/challenge-002/simon-proctor/perl5/to-base-35.pl
new file mode 100644
index 0000000000..4bee1b597d
--- /dev/null
+++ b/challenge-002/simon-proctor/perl5/to-base-35.pl
@@ -0,0 +1,18 @@
+use strict;
+use v5.10;
+
+my $in = shift @ARGV;
+my @out = ();
+
+my $c = 0;
+my %map = map { $c++ => $_ } (0..9,"A".."Y");
+
+while ( $in ) {
+ my $rem = $in % 35;
+ push @out, $map{$rem};
+ $in = $in - $rem;
+ $in = $in / 35;
+}
+
+say join( "", reverse @out );
+