Я использую Bio :: PopGen :: PopStats , чтобы вычислить F Райта st для каждой строки, которую я прочитал в моем входном файле.Мой входной файл содержит около 500 000 строк, поэтому я вычисляю эту статистику 500 000 раз следующим образом:
use Bio::PopGen::PopStats;
my $stats = Bio::PopGen::PopStats->new();
my $fst = $stats->Fst(\@populations,\@markernames);
push(@fsts, $fst);
Я сохраняю каждое значение F st в массиве @fsts
, потому что вконец Я использую все 500 000 Fsts для вычисления некоторой сводной статистики.
Если модуль не может рассчитать F st для одной из 500 000 строк, весь скрипт Perl останавливается и выдает сообщение об ошибкеобычно это:
Illegal division by zero at /usr/share/perl5/Bio/PopGen/PopStats.pm line 292, <READ2> line 10878.
Я бы хотел, чтобы моя программа выдала это сообщение об ошибке, но вместо остановки просто пропустите эту строку (ничего не помещайте в массив @fsts
для этой строки) и завершитеостальные 500 000 строк.Есть предложения?