У меня есть скрипт perl, для которого я создал файл журнала, и все операции, которые этот скрипт сделает, будут записываться в файл журнала.обработчик файла застревает во время вывода вывода в текстовый файл в Perl
Это было хорошо, я внес некоторые изменения, чтобы исправить некоторые проблемы, но теперь я получаю странную проблему, Файловый обработчик застревает во время записи файла журнала, и он не обновляет файл журнала до тех пор, пока я не буду я выхожу из сценария с опцией exit (x).
Например, мой сценарий предлагает выполнить
- Extract
- Validate
Резервное копирование
X. Выход
теперь я бегу Extraction и обновляет журнал. Но в то время как extrcation является complted я открыл файл журнала, и я могу увидеть последнюю строку
Date: XYZ file extracted.
Date: XXXX file is preparing to extract
Date:
и ни дальнейшего обновление, хотя он добыл все файлы, то я выйти из сценария с помощью опции X и только после этого Я вижу полный журнал.
Я не понимаю, почему он застревает, и это происходит для всех других вариантов. Раньше он работал нормально. Я просто использую обработчик и печать для перенаправления.
open FILE, ">>log.txt"
## DO some thing
print FILE $output;
может кто-нибудь сказать мне, что может быть проблемой?
Вы печатаете строку журнала в одном утверждении 'print' или двух? Это 'do_something(); print "Date: $ log_message \ n"; 'или это' print 'Date: "; сделай что-нибудь(); print $ log_message; '? – Schwern
Попробуйте включить автозапуск, чтобы избежать буферизации: '$ | ++;' – xxfelixxx