Я тоже не мог найти ответа, ни где. После того, как я наконец-то нашел это решение сегодня, после долгих часов исследований в течение двух дней для решения одной и той же основной проблемы на моей собственной 64-битной Windows 7 с 32-битной Perl 5.16.1 build 1601 ActiveState, вот кое-что из нижеперечисленного для меня: почему нормальный опубликованный синтаксис, похоже, не работает, и я пробовал десятки вариантов, но только сегодня нашел тот, который работает - согласно вашей публикации и ответам здесь.
Это ниже выводимое сообщение из моего Perl. Пример 1
(где впервые у меня НЕТ выходного файла нулевого байта, а также файл с текстом внутри того, что я хотел добавить туда).
Это сработало нормально.
Это вывод из моего Perl Пример 2:
print () на закрытой файловой ручке OUTPUT в строке testme3.pl 85.
Пример 2: без переменной доллара OUTPUT.
Как и раньше, когда оператору печати не удалось распечатать вывод в файл, и вместо этого снова отобразилось отображение на экране, у меня появилось первое сообщение об ошибке. К моему удивлению, моя инструкция print пыталась печатать, когда дескриптор файла уже закрылся!
До этого у меня не было ни сообщений об ошибках из ОС, ни сообщений о штампах, поскольку я не помещал операторы в свои операторы печати. Ниже приведены два примера кода в том же порядке, чтобы показать, что породило вышеупомянутые сообщения. Кстати - в сценарии было строгое использование; и используйте предупреждения;
Пример 1:
print "\n\nThis worked fine";
my $OUTPUT;
open ($OUTPUT, '>hereOUTPUT.txt' ) or die "Can not create/open file. $!l";
print $OUTPUT "this is created OUTPUT";
close $OUTPUT;
Пример 2. Удаление префикса $ для OUTPUT в строке печати привело к появлению интересного нового сообщения об ошибке выше.
print "\n\nExample 2: with no dollar sign OUTPUT variable.";
my $OUTPUT;
open ($OUTPUT, '>>hereOUTPUT.txt' ) or die "Ex3a) Can not create/open file. $!l";
print OUTPUT "this is non dollar appended OUTPUT";
close $OUTPUT;
И, наконец, вот новый ненулевой выходной файл и что внутри:
c: \ a000 \ myperl \ projects \ dir1> dir здесь *
Том на диске C не имеет метки.
Серийный номер тома: 28B5-6AB9
Каталог c: \ a000 \ myperl \ projects \ dir1
12.12.2012 17:57 22 здесьOUTPUT.txt
2 файл (-ов) 22 байта
0 Dir (s) 636 297 977 856 байт
c: \ a000 \ myperl \ projects \ dir1> введите здесь OUTPUT.txt
это создано ВЫХОД
C: \ a000 \ myperl \ проекты \ dir1>