Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Script critique requested

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


in reply to Script critique requested

jhumphreys:

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 #dectobin3.pl 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.

...roboticus

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


Comment on Re: Script critique requested
Download Code
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.

    Best,

    J.

      jhumphreys:

      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.

      ...roboticus

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

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://997277]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (9)
As of 2014-09-30 20:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (384 votes), past polls