diff options
Diffstat (limited to 'challenge-059')
| -rwxr-xr-x | challenge-059/jaredor/perl/ch-2.pl | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/challenge-059/jaredor/perl/ch-2.pl b/challenge-059/jaredor/perl/ch-2.pl index 9acee3e679..ce5ae1f0cd 100755 --- a/challenge-059/jaredor/perl/ch-2.pl +++ b/challenge-059/jaredor/perl/ch-2.pl @@ -9,21 +9,21 @@ use List::Util qw(all sum); # Answer based on perl doc for unpack and www.perlmonks.org/?node_id=407933 -my ( $LL, $NN ) = - defined $Config{longlongsize} - ? ( 8 * $Config{longlongsize}, 'Q' ) - : ( 8 * $Config{longsize}, 'N' ); - die "This script requires one or more positive integer arguments." unless @ARGV; die "Not all arguments to the script are positive integers." unless all { /\A [1-9] \d* \Z/xms } @ARGV; +my ( $LL, $NN ) = + defined $Config{longlongsize} + ? ( 8 * $Config{longlongsize}, 'Q' ) + : ( 8 * $Config{longsize}, 'L' ); + my @nums = map { pack "${NN}*", $_ } @ARGV; -my (@diffbits, $num); -while ($num = shift @nums) { +my ( @diffbits, $num ); +while ( $num = pop @nums ) { push @diffbits, unpack( "%${LL}b*", $num ^ $_ ) for @nums; } say @diffbits ? sum @diffbits : 0; |
