aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-04-03 20:31:55 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-04-03 20:31:55 +0100
commit75fea8807c48d41773400f695cf9dfa39910769f (patch)
treeae1d69e6c964fd7078ae55e21570d9824de6d3b7
parentd9585a60963451a628d3d2bcb4e1dc5d4916fd44 (diff)
downloadperlweeklychallenge-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.pl18
-rw-r--r--challenge-002/arpad-toth/perl5/ch-2.pl48
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;
+