aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordasJake <no_mail@github.com>2021-11-23 21:42:48 +0100
committerdasJake <no_mail@github.com>2021-11-23 21:42:48 +0100
commit7273b996d81ab9cc525f3cc5163a9ff135ede306 (patch)
tree19295de4e28922a96f85aac7b354746b99a864af
parentafec256a9d3aadf2e7f97a8911bb6ee96ce9f491 (diff)
downloadperlweeklychallenge-club-7273b996d81ab9cc525f3cc5163a9ff135ede306.tar.gz
perlweeklychallenge-club-7273b996d81ab9cc525f3cc5163a9ff135ede306.tar.bz2
perlweeklychallenge-club-7273b996d81ab9cc525f3cc5163a9ff135ede306.zip
140 refactor binary_to_decimal
-rw-r--r--challenge-140/jake/perl/bin2dec.pl23
1 files changed, 14 insertions, 9 deletions
diff --git a/challenge-140/jake/perl/bin2dec.pl b/challenge-140/jake/perl/bin2dec.pl
index 7fecc9ce09..6514d88e7d 100644
--- a/challenge-140/jake/perl/bin2dec.pl
+++ b/challenge-140/jake/perl/bin2dec.pl
@@ -3,28 +3,33 @@ use strict;
use warnings;
# get input
-print "binary number a: ";
-my $a = <STDIN>;
-chomp $a;
+print "binary number: ";
+my $binary_input = <STDIN>;
+chomp $binary_input;
-my $a_decimal = binary_to_decimal ( $a, 0, 0 );
+my $a_decimal = binary_to_decimal ( $binary_input );
print "$a_decimal\n";
sub binary_to_decimal {
+ my ( $binary ) = @_;
+
+ return _binary_to_decimal ( $binary, 0, 0 );
+}
+
+sub _binary_to_decimal {
my ( $binary_number, $power, $acc, $tail ) = @_;
- print "begin sub with $binary_number\n";
return $acc if $binary_number eq '';
+
$tail = chop ($binary_number);
+
if ( $tail == 1 ) {
- print "if with $binary_number\n";
$acc += 2**$power;
$power++;
- return binary_to_decimal ( $binary_number, $power, $acc );
+ return _binary_to_decimal ( $binary_number, $power, $acc );
}
if ( $tail == 0 ) {
- print "elsf with $binary_number\n";
$power++;
- return binary_to_decimal ( $binary_number, $power, $acc );
+ return _binary_to_decimal ( $binary_number, $power, $acc );
}
} \ No newline at end of file