in reply to Help regarding the outout of the program
Your problem is with the for loop:
for ($i =0;$i<length($dna);$i++){ if ($i == $position){ print " mutation at base position ". ($position+1) . "\n"; do { $nucleotide = randombase(); } until ($nucleotide ne substr($dna,$position,1)); substr($dna, $position, 1, $nucleotide); print "$dna\n"; } $i++; }
You increment $i at the top of the loop and at the bottom of the loop so sometimes $i will never be equal to $position.
Better to write the loop as:
for my $i ( 0 .. length( $dna ) - 1 ) {
Also, you don't need a do block for your until statement modifier:
$nucleotide = randombase() until $nucleotide ne substr $dna, $posi +tion, 1;
|
|---|