Author: Steffen Moeller Description: Fixes a series of errors indicated by Perl 5.18. Forwarded: https://sourceforge.net/p/perlprimer/patches/6/ Index: git/perlprimer.pl =================================================================== --- git.orig/perlprimer.pl +++ git/perlprimer.pl @@ -3093,23 +3093,24 @@ # and because it's 3' primer-dimers that are the real problem in PCR. # create a binding array for each of the four bases - for $l (0 .. $pfl-1) { + foreach $l (0 .. $pfl-1) { my $mbase = substr($fprimer_r, $l, 1); $primer_hash{$mbase}[$l]=1; - for $k qw(a g c t) { + my @nucleotides = qw(a g c t); + foreach $k (@nucleotides) { $primer_hash{$k}[$l] ||=0; } } # create the primer matrix my @primer_comp; - for $k (0 .. $prl-1) { + foreach $k (0 .. $prl-1) { $primer_comp[$k]=$primer_hash{substr($rcomprlc, $k, 1)}; } # read each combination from the matrix, calculate dG for each dimer my $pd_len = ($pd_full ? $pfl+$prl-1 : $pl-2); - for $k (0 .. $pd_len) { + foreach $k (0 .. $pd_len) { $score[$k]=0; my $bind; my $score_p=0; @@ -3129,7 +3130,7 @@ # } # read the binding data - for $l (0 .. $prl-1) { + foreach $l (0 .. $prl-1) { if (($k-$l)<$pfl) { $bind .= $primer_comp[$l][$k-$l] if ($k-$l)>=0; } else { @@ -3148,7 +3149,7 @@ # Find start and end of similarity my ($pb_init,$pb_end); - for $l (0 .. length($bind)-1) { + foreach $l (0 .. length($bind)-1) { # at first I tried finding the initiating terminal bases with # regexps, but that was much slower ... if (substr($bind, $l, 1) eq "1") { @@ -3159,7 +3160,7 @@ if (defined($pb_init)) { # deltaG calculation - for $l ($pb_init .. $pb_end-1) { + foreach $l ($pb_init .. $pb_end-1) { next if substr($bind, $l, 2) eq "00"; next if substr($bind, $l, 1) eq "2"; $score_p+=$oligo_dG{substr($primer_f, $pfl-$k+$l-1, 2).substr($rprimer_r, $l, 2)}; @@ -3228,44 +3229,44 @@ # and because it's 3' primer-dimers that are the real problem in PCR. # create a binding array for each of the four bases - for $l (0 .. $pfl-1) { + foreach $l (0 .. $pfl-1) { my $mbase = substr($fprimer_r, $l, 1); $primer_hash{$mbase}[$l]=1; - for $k qw(a g c t) { + foreach $k (qw(a g c t)) { $primer_hash{$k}[$l] ||=0; } } # create the primer matrix my @primer_comp; - for $k (0 .. $prl-1) { - $primer_comp[$k]=$primer_hash{substr($rcomprlc, $k, 1)}; + foreach my $kk (0 .. $prl-1) { + $primer_comp[$kk]=$primer_hash{substr($rcomprlc, $kk, 1)}; } # print the matrix - for debugging print "$primer_f vs. $primer_r - full pd = $pd_full\n"; print " \t"; - for $l (0 .. $pfl-1) { + foreach $l (0 .. $pfl-1) { my $mbase = substr($fprimer_r, $l, 1); print "$mbase "; } print "\n"; - for $k (0 .. $prl-1) { - my $base = substr($rprimer_r, $k, 1); - print "$base:\t@{$primer_comp[$k]}\n"; + foreach my $kk (0 .. $prl-1) { + my $base = substr($rprimer_r, $kk, 1); + print "$base:\t@{$primer_comp[$kk]}\n"; } my @binding_data; # read each combination from the matrix, calculate dG for each dimer my $pd_len = ($pd_full ? $pfl+$prl-1 : $pl-2); - for my $k (0 .. $pd_len) { - $score[$k]=0; + foreach my $kk (0 .. $pd_len) { + $score[$kk]=0; my $bind; my $score_p=0; # starting coords - my $pf_coord_start = ($k >= $pfl ? $pfl-1 : $k); - my $pr_coord_start = ($k - $pfl > 0 ? $k - $pfl : 0); + my $pf_coord_start = ($kk >= $pfl ? $pfl-1 : $kk); + my $pr_coord_start = ($kk - $pfl > 0 ? $kk - $pfl : 0); my ($pf_coord, $pr_coord, $first, $flag); # read through each combination finding multiple matches @@ -3285,7 +3286,7 @@ } } elsif ($flag) { # end of a binding stretch - push @binding_data, [$k, $first, $bind] if $bind > 1; + push @binding_data, [$kk, $first, $bind] if $bind > 1; $bind=0; $flag=0; } @@ -3325,7 +3326,7 @@ # # } # # # read the binding data - # for $l (0 .. $prl-1) { + # foreach $l (0 .. $prl-1) { # if (($k-$l)<$pfl) { # $bind .= $primer_comp[$l][$k-$l] if ($k-$l)>=0; # } else { @@ -3344,7 +3345,7 @@ # # # Find start and end of similarity # my ($pb_init,$pb_end); - # for $l (0 .. length($bind)-1) { + # foreach $l (0 .. length($bind)-1) { # # at first I tried finding the initiating terminal bases with # # regexps, but that was much slower ... # if (substr($bind, $l, 1) eq "1") { @@ -3355,7 +3356,7 @@ # # if (defined($pb_init)) { # # deltaG calculation - # for $l ($pb_init .. $pb_end-1) { + # foreach $l ($pb_init .. $pb_end-1) { # next if substr($bind, $l, 2) eq "00"; # next if substr($bind, $l, 1) eq "2"; # $score_p+=$oligo_dG{substr($primer_f, $pfl-$k+$l-1, 2).substr($rprimer_r, $l, 2)};