Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Script critique requested

by roboticus (Chancellor)
on Oct 04, 2012 at 17:46 UTC ( #997277=note: print w/replies, xml ) Need Help??

in reply to Script critique requested


Well, it works, but I'm not really a fan of the use of the <=> operator, though it's certainly clever.</opinion>

Also, you're brute forcing things by doing the repetitive work yourself instead of having the computer do it. For example, you could do it like:

#!/usr/bin/perl use warnings; use strict; print "Enter a decimal number, less than 256, to be converted to a bin +ary number: "; chomp(my $dec = <STDIN>); my @bits = map { ($dec & 1<<$_) <=> 0 } reverse 0 .. 7; print "Bits=",join("", @bits), "\n";

That way, you can use it for larger numbers without the tedious copy, paste, edit cycle. Generally, whenever you start typing something like $bit_1, $bit_2, etc., it's time to consider using an array.


When your only tool is a hammer, all problems look like your thumb.

Replies are listed 'Best First'.
Re^2: Script critique requested
by jhumphreys (Novice) on Oct 04, 2012 at 17:52 UTC

    roboticus, thanks for the reply--very useful! Am slowly working my way through intro Perl text by Cozens, so haven't learned map or join yet. But I like the array and the use of reverse you recommend.




      Sorry, I was a bit too idiomatic there. I probably should've suggested something more like:

      my @bits; for (128 64 32 16 8 4 2 1) { push @bits, ($dec & $_) <=> 0; }

      Basically, I saw the wall of:

      my $dec_a = $dec & 128; my $dec_b = $dec & 64; my $dec_c = $dec & 32; my $dec_d = $dec & 16; my $dec_e = $dec & 8; my $dec_f = $dec & 4; my $dec_g = $dec & 2; my $dec_h = $dec & 1;

      and thought to myself that really a loop was needed.


      When your only tool is a hammer, all problems look like your thumb.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://997277]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2018-04-22 09:22 GMT
Find Nodes?
    Voting Booth?