Perl открывает динамически сгенерированные файлы

Я использую CGI скрипт для своего сайта. И у меня проблема с открытием динамически сгенерированного файла. Вот код:

#!/usr/bin/perl
my @output = `/export/es_share/Zhou/./notification_finder.sh range $date $time $range $ulh TestProd1 $actionname`;
my $filen = $output[0];
open(my $result, "<", $filen) or die "Can't open $filen - $!";
Do something with the file...

Всегда терпит неудачу, с выводом:

Can't open /var/tmp/notification-finder-1375086676-658183725.tmp - 
No such file or directory at /var/www/cgi-bin/appsupport/logapp_test/perltest.cgi line X.

Пока как это удается:

#!/usr/bin/perl
open(my $result, "<", /var/tmp/notification-finder-1375086676-658183725.tmp) or die "Can't open $filen - $!";
Do something with the file...

Я также проверил, была ли это проблема асинхронного выполнения проблемы обратных кавычек, но из моего исследования стека overoverflow это, похоже, не является проблемой. Я также попробовал это:

#!/usr/bin/perl
my @output = `/export/es_share/Zhou/./notification_finder.sh range $date $time $range $ulh TestProd1 $actionname`;
sleep(10);
my $filen = $output[0];
open(my $result, "<", $filen) or die "Can't open $filen - $!";
Do something with the file...

Я нашел эту похожую проблему здесь, но у меня, похоже, нет такой же проблемы, как у автора... Спасибо за чтение этого места.

1 ответ

Решение

Ошибка указывает на наличие новой строки в конце $filenиначе было бы:

Can't open /var/tmp/notification-finder-1375086676-658183725.tmp - No such file or directory at /var/www/cgi-bin/appsupport/logapp_test/perltest.cgi line XXXXXXXXX.

Удалите это с:

chomp $filen;
Другие вопросы по тегам