Я скачал приложение , о котором идет речь .Это Perl-приложение, упакованное с использованием pp
.
Чтобы увидеть рассматриваемый код, unzip
скачанный файл и затем извлеките содержимое исполняемого файла, используя
E:\Home\Downloads\LF_aligner_2.56_win\aligner> unzip LF_aligner_2.56.exe -d some-temp-dir
Вы найдете файл
some-temp-dir\script\LF_aligner_2011_06_29_multi.pl
Строка 1856:
system ("\"$hunalign_bin\" -text \"$scriptpath/scripts/hunalign/data/$hunalign_dic\" \"$folder/$file1\" \"$folder/$file2\" > \"$folder/aligned_${alignfilename}.txt\"");
, что, по меньшей мере, беспорядочно.Программа не проверяет, удалось ли system
.Из-за сбоя system
последующая попытка прочитать размер выходного файла также не удалась (обратите внимание на предупреждение), и впоследствии программа обнаружила, что что-то пошло не так:
# SEE IF ALIGNED FILE IS OK, ABORT IF NOT
my $alignedfilesize = -s "$folder/aligned_${alignfilename}.txt";
if ($alignedfilesize == 0) {
print "\n\n-------------------------------------------------";
print "\n\nAlign failed (probably due to one file being empty or very short). ABORTING...\n\n";
print LOG "\nAligned file empty, aborted.";
Ничто из этого не решает вашу проблему, но дает вам кое-что для расследования, если вам так хочется.По крайней мере, вы, возможно, захотите уведомить автора программы.
Способ, которым автор обрабатывает пути, слишком запутан, чтобы кто-либо другой мог чувствовать себя действительно заинтересованным в расследовании.