Я пытался написать программу, в которой perl открывает один файл, но возвращается к другому, если этот файл не существует или не может быть открыт по какой-либо причине. Соответствующая линия:Fallback Open File Perl
open(my $fh,"<","/path/to/file") or open (my $fh,"<","/path/to/alternate/file") or die
В конце концов, я понял, что:
open(my $fh,"<","/path/to/file") or open ($fh,"<","/path/to/alternate/file") or die
работал. В чем разница между этими двумя утверждениями, почему первая работа не работает, а вторая - правильный способ сделать это или все еще есть проблемы с ней?
Редактировать: Если это имеет значение, я использую perl 5.12
, и первое не удается в случае, если существует "/path/to/file"
. Моя склонность состоит в том, что второй open
не должен запускаться, если первый открытый успешно, поэтому почему $fh
будет перезаписан вторым?
В первую очередь не было проблем, хотя переменная повторно объявлена повторно. –
@JayKumarR Ну, это не сработало. В следующей строке '$ fh' не был дескриптором открытого файла для любого файла. – Chris
Всегда используйте 'use strict; использовать предупреждения qw (все); '!!!! – ikegami