2016-06-21 7 views
2

Часто [не всегда], когда я запускаю процедуру, определяю обработчик файла, я получаю странную ошибку во внутренней функции, которую я не понимаю, как отлаживать. В моем PERL-коде у меня есть следующая строка [111]: open V_FILE_SEC, ">> $ file/V_ $ file $ dir.csvT" или die $ !;Ошибка при перенаправлении данных в файл

И когда я работает скрипт [> myscript.pl DPX_ *] я получаю:

"Нет такого файла или каталога в myscript.pl линии 111, линия 18004."

В чем смысл строки 18004? Как начать отладку?

Спасибо.

ответ

2

От perldoc -f die:

Если последний элемент списка не заканчивается символом новой строки, номер текущей строки сценария и номер входной линии (если таковые имеются) также напечатаны, и символ новой строки подается , [Выделено]

«Ввод номер строка» это значение в $., примерно число линий ввода вы считанные из самих последнего дескриптора вы доступом.

В вашем случае вы можете использовать, чтобы посмотреть свой ввод программы и посмотреть, нет ли чего-то необычного в строке 18004, что ваша программа не ожидала.

+0

Или, поскольку аргумент вашего сценария является 'DPX_ *', проблема может возникнуть из строки ~ 18004 любого из входных файлов или на 18000-й строке конкатенации всего вашего ввода. – mob

+0

Спасибо! У меня всего 1500 строк, мой скрипт терпит неудачу в строках 111 и 18004?! порядочно он переходит к другому коду, ниже которого я не обрабатываю. Я манипулирую большими файлами данных из многих библиотек, начинающихся с DPX _... Может быть, есть определенный модуль, чтобы получить лучшую производительность при упрощенном обслуживании? – ALON