У меня есть следующий условный код как часть моего скрипта, и я продолжаю получать синтаксическую ошибку только для последнего вызова open
. Предложения?Ошибка синтаксиса в Perl open
if ($contig_string =~ /($pattern)/) {
print "$ERR_number \n";
print "Found forward pattern.\n";
print "Pattern found is: $1 \n";
$position = index($contig_string,$1);
print "Index returned: $position \n";
$substr_forward = substr($contig_string, $position, -2000);
print "$substr_forward \n";
open (REPORT, ">>", spacer_contigs) or die "Could not open";
print REPORT ">$ERR_number \n";
print REPORT "$substr_forward \n";
}
elsif ($contig_string =~ /($pattern_reverse)/) {
print "$ERR_number \n";
print "Found reverse pattern.\n";
print "Pattern found is: $1 \n";
$position_reverse = index($contig_string,$1);
print "Index returned: $position_reverse \n";
$substr_reverse = substr($contig_string, $position_reverse, 2000);
print "$substr_reverse \n";
open (REPORT, ">>", spacer_contigs) or die "Could not open";
print REPORT ">$ERR_number \n" or die "Could not append";
print REPORT "$substr_reverse \n";
}
elsif ($contig_string !~ /$pattern_forward/) {
print "$ERR_number \n";
print "Did not find pattern. \n"
open (NOMATCH, ">>", no_match) or die "Could not open"; # SYNTAX ERROR
print NOMATCH ">$ERR_number \n" or die "Could not append";
}
Просто быть ясно, являются '' ** для выделения/жирным шрифтом? Укладка меток не доступна в кодовых блоках. Было бы лучше добавить комментарий внутри фрагмента рядом с линией или сократить фрагмент до того, что действительно нужно. Кроме того, если вы можете включить сообщение, данное ошибкой в вашем сообщении, это может быть полезно. –
Вам не хватает точки с запятой на предыдущей строке. – Andrei
У вас также есть сообщения 'die'. '>>' добавляется, а '>' перезаписывается. – TLP