Ошибка происходит от perl.c, строка 595 :
PerlIO_printf(PerlIO_stderr(), "Unable to flush stdout: %s",
Strerror(errno));
Эта строка является частью perl_destruct
, которая вызывается для отключенияинтерпретатор perl в конце программы.
Как часть глобальной процедуры завершения работы, все все еще открытые файловые дескрипторы сбрасываются (т.е. все буферизованные выходные данные записываются).В вышеприведенном комментарии говорится:
/* Need to flush since END blocks can produce output */
/* flush stdout separately, since we can identify it */
Сообщение об ошибке не указано в perldoc perldiag
, что, возможно, является ошибкой документации.Вероятно, это упустили из виду, потому что это не настоящий вызов warn
или die
, а просто print STDERR $message
.Он не связан с именем файла или номером строки, потому что это происходит только после того, как ваша программа перестает работать (т. Е. После вызова exit
или из-за того, что выполнение прекратилось до конца основного сценария).