diff options
| -rw-r--r-- | challenge-002/simon-proctor/perl5/ch-1.sh | 1 | ||||
| -rw-r--r-- | challenge-002/simon-proctor/perl5/ch-2.pl | 16 | ||||
| -rw-r--r-- | challenge-002/simon-proctor/perl5/to-base-35.pl | 18 |
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 ); + |
