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

Re: string mutation script behaving erraticaly

by McA (Curate)
on Jun 25, 2012 at 20:17 UTC ( #978258=note: print w/ replies, xml ) Need Help??


in reply to string mutation script behaving erraticaly

Hi
my first hints:
a) use 'use strict;' to protect yourself. Yes, this advice is annoying but helpful.
b) The script gives warnings on runtime: Follow them.
c) The line for ($j = 1; $j <= 20;$j++) is IMHO wrong as a perl array is accessed with index starting with 0, so for ($j = 0; $j < 20;$j++).
d) Why do you use an external program to generate random numbers? See perldoc -f rand.
e) Don't initialize the random numer generator before every rand().
f) Your code to instantiate the %nuc-hash is in a way that you get an array of strings. Afterwards you convert them implicitly to float numbers. So instantiate them acordingly.

%nuc = ( 'F' => [0.001, 0.001, ...], ... )
g) Instead of programming this "ugly" if-elsif-else-statement at the end use a mapping-hash. It's better readable, it's better maintainable and it's less error prone.
my %mapping = ( 1 => "A", 2 => "R", 3 => "N", ... ); if(exists $mapping{$names[$j]}) { $names[$j] = $mapping{$names[$j]}; } else { # Default value (last else-Statement) $names[$j]="V"; }


Comment on Re: string mutation script behaving erraticaly
Select or Download Code

Log In?
Username:
Password:

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

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

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











    Results (108 votes), past polls