Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^2: What makes good Perl code?

by slinky773 (Sexton)
on Aug 16, 2011 at 16:01 UTC ( #920510=note: print w/replies, xml ) Need Help??


in reply to Re: What makes good Perl code?
in thread What makes good Perl code?

I was thinking about what Marshall said about user input, and how the program should be tolerant of user input no matter what it is. I was looking for a way to change this:
IF: if($current && $resistance) { if($current =~ s/mA//i) { $current /= 1000; } else { } } else { print "Those aren't valid answers.\n"; print "Please type that again, will ya?\n"; print "Type the current of the circuit.\n"; print "Add mA at the end of your answer\n"; print "if your answer is in milliAmps.\n"; $current = <STDIN>; chomp $current; print "Now type the resistance of the circuit.\n"; $resistance = <STDIN>; chomp $resistance; goto IF; }
I want a way for the else block to run if both the inputs don't have numbers in them. Perhaps with an elsif block? However, I'm not aware of anything that would do what I require. Maybe with an algorithm? I don't know of ANY algorithms at all except for the Fischer-Yates shuffle, and that's pretty useless nowadays, considering Perl has a shuffle command anyways. Anyone know of a way to test for a number in a variable?

Replies are listed 'Best First'.
Re^3: What makes good Perl code?
by Friendly Daemon (Initiate) on Aug 16, 2011 at 20:12 UTC

    One thing I do is to cleanup bulky lines after I get it working. For example, I might use $LOOP = $LOOP +1; until I get comfy and then go back and change that to ++$LOOP;.

    In this case, the first thing I noticed was chomp: chomp (my $current = <STDIN>);.

    Also, I keep the input and descriptor together.

    print "Type the current of the circuit.\n"; chomp (my $current = <STDIN>); print "Now type the resistance of the circuit.\n"; chomp (my $resistance = <STDIN>);

    But, really, as long as it's legible and someone can pick this up after you've moved on and edit/use it, you're a step above some people. Keep It Simple, =!Sloppy.

Re^3: What makes good Perl code?
by ForgotPasswordAgain (Deacon) on Aug 16, 2011 at 23:21 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://920510]
help
Chatterbox?
[thezip]: Howdy y'all. Is it safe to just delete StrawberryPerl-> cpan->build directories?
[1nickt]: karlgoethebier Thank you!! How could I not have ever heard of this musician?
[choroba]: thezip should be ok.
[thezip]: It seemed so, choroba, but I don't want to confuse anyone (especially myself!)
[choroba]: thezip unless something like this happens to you.
[thezip]: I don't intend on doing any offline development in the Czech Republic soon, so i think I'm safe!
[thezip]: :-)

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (10)
As of 2017-03-23 21:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (294 votes). Check out past polls.