Следующий (не очень Perl-ish) код
#!/usr/bin/perl
if (! -e "mydir/")
{
print "directory doesn't exist.\n";
}
open (my $fh, ">", "mydir/file.txt");
if ($fh)
{
print "file opened.\n";
print $fh;
print $fh "some text\n" or die "failed to write to file.\n";
close ($fh);
}
else
{
print "failed to open file.\n";
}
производит вывод, такой как этот
directory doesn't exist.
file opened.
failed to write to file.
GLOB(0x...some-hex-digits...)
Почему $ fh не эквивалентноложь после открытого вызова?Поскольку mydir / не существует, я ожидаю, что попытка открытия файла завершится неудачей.
Я получаю аналогичные результаты, если каталог и файл существуют, но файл доступен только для чтения.
Я пробовал это с Perl 5.10.1 на Windows 7 x64 и с Perl 5.10.0 на Fedora-11 Linux.
Я предполагаю, что мой тест дескриптора файла неверен,Я попытался найти это без удачи.Я ожидаю, что это что-то очевидное, но любые советы или ссылки будут высоко оценены.
Спасибо, Роб.