У меня проблемы с выполнением моих подпрограмм на Perl.
Вот определение:
sub primer{
print STDERR "primer is $_[0]\n";
$primer=$_[0];
if ($_[0]=~/ATTACCGC/){
mkdir ("Primer1") || die "Unable to create directory <$!>\n";
open OUTFILE1,">","Primer1/lt450";
open OUTFILE2,">","Primer1/no_primer_lt450";
open REPORT,">","Primer1/Report";
&primer_analysis('ATTACCGC');}
if ($_[0]=~/CCGTCAATTC[AC]/){
mkdir ("Primer2") || die "Unable to create directory <$!>\n";
open OUTFILE1,">","Primer2/lt450";
open OUTFILE2,">","Primer2/no_primer_lt450";
open REPORT,">","Primer2/Report";
&primer_analysis('CCGTCAATTC[AC]');}
Вот часть другой подпрограммы, которая должна быть вызвана выше:
sub primer_analysis{
$primer=$_[0];
while ($line = <INFILE>){
if ($line =~ /^>/) {
$header = $line;
$headcnt++;}
if ($line !~/^>/){
$seq = $line;
chomp($seq);
if (length($seq)<450 && $seq=~/^$primer/){
$len_450=length($seq);
$TB_450=$len_450+$TB_450;
$cnt450++;
print OUTFILE1 "$header";
print OUTFILE1 "$seq\n";}}
И следующее вызывает функцию:
&primer('ATTACCGC');
&primer('CCGTCAATTC[AC]');
проблема в том, что при запуске программы выполняются только Primer1, то есть каталоги и данные создаются правильно, однако с Primer2 ничего не происходит.
Есть идеи, почему выполняется только одна часть функции?
Спасибо