diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-03 20:31:55 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-03 20:31:55 +0100 |
| commit | 75fea8807c48d41773400f695cf9dfa39910769f (patch) | |
| tree | ae1d69e6c964fd7078ae55e21570d9824de6d3b7 | |
| parent | d9585a60963451a628d3d2bcb4e1dc5d4916fd44 (diff) | |
| download | perlweeklychallenge-club-75fea8807c48d41773400f695cf9dfa39910769f.tar.gz perlweeklychallenge-club-75fea8807c48d41773400f695cf9dfa39910769f.tar.bz2 perlweeklychallenge-club-75fea8807c48d41773400f695cf9dfa39910769f.zip | |
- Added solutions by "Arpad Toth".
| -rw-r--r-- | challenge-002/arpad-toth/perl5/ch-1.pl | 18 | ||||
| -rw-r--r-- | challenge-002/arpad-toth/perl5/ch-2.pl | 48 |
2 files changed, 66 insertions, 0 deletions
diff --git a/challenge-002/arpad-toth/perl5/ch-1.pl b/challenge-002/arpad-toth/perl5/ch-1.pl new file mode 100644 index 0000000000..7ca1c664df --- /dev/null +++ b/challenge-002/arpad-toth/perl5/ch-1.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl -w +use strict; + +=pod + +=head1 Perl Weekly Challenge #002-1 + + Write a script or one-liner to remove leading zeros from positive numbers. + eg '00034' result should be '34' + + one liner solution + perl -le '$ARGV[0] =~ s/^0+// && print $ARGV[0]' 000023 + +=cut + +exit; + + diff --git a/challenge-002/arpad-toth/perl5/ch-2.pl b/challenge-002/arpad-toth/perl5/ch-2.pl new file mode 100644 index 0000000000..66d0d2a031 --- /dev/null +++ b/challenge-002/arpad-toth/perl5/ch-2.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl -w +use strict; +use v5.10; +=pod + +=head1 Perl Weekly Challenge #002-2 + Write a script that can convert integers to and from a base35 representation, using the characters 0-9 and A-Y. + note: argument checking is not completely safe, was not part of the solution. + +=cut + +unless((scalar(@ARGV)==2) && ($ARGV[0] =~/tobase35|frombase35/)){ +say <<USAGE; +usage: chw2_2.pl <options> + tobase35 - convert decimal integer to base35 + frombase35 - convert base35 number to decimal + number +examples: chw2_2.pl tobase35 256, should print '7b' + chw2_2.pl frombase35 7b, should print '256' +USAGE +exit; +} + +my $string=""; +my $demal = 0; + +process($ARGV[0],$ARGV[1]); + +sub process { +my ($option, $number) = @_; +if ($option eq "tobase35") { + $number = int($number); + while($number){ + $string .= ('0'..'9','A'..'Z')[$number % 35]; + $number = int($number/35); + } +say scalar(reverse($string)); +} +else { + $number = uc($number); + for my $char (split(//,$number)){ + $demal = 35*$demal + index("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",$char); + } +say $demal; +} +} +exit; + |
