Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: string mutation script behaving erraticaly

by McA (Priest)
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 contemplating the Monastery: (11)
As of 2015-07-03 09:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (51 votes), past polls