Проблема очистки Perl MozRepl - PullRequest
       22

Проблема очистки Perl MozRepl

0 голосов
/ 27 октября 2010

Я кодирую веб-сканер и использую WWW :: Mechanize :: Firefox для навигации по некоторым страницам (для других я использую WWW :: Mechanize), которые продолжают загружать контент после загрузки страницы, и я никогда не было проблем с этим.

Вчера я добавил DBI и DBD :: mysql в скрипт, добавив запросы для экспорта данных в базу данных (это работает отлично), но внезапно MozRepl начал выдавать эту ошибку:

(in cleanup) Can't call method "execute" on an undefined value at /Library/Perl/5.10.0/MozRepl.pm line 372 during global destruction.
(in cleanup) Can't call method "execute" on an undefined value at /Library/Perl/5.10.0/MozRepl.pm line 372 during global destruction.

и завершение скрипта через 1 цикл (он должен работать, пока не дойдет до конца определенного текстового файла, чего не происходит).

Я ничего не трогал в этой части скрипта (не нужно использовать БД с этими страницами), по крайней мере, охотно. Я проверил приложение для сравнения файлов и ничего не смог решить.

Размещение кода может быть сложным, довольно длинным, и я не знаю, в чем проблема.

EDIT

Иногда также выдает эту ошибку вместо предыдущей:

(in cleanup) Can't call method "cmd" on an undefined value at /Library/Perl/5.10.0/MozRepl/Client.pm line 186 during global destruction.

1 Ответ

1 голос
/ 28 октября 2010

Это не имеет ничего общего с DBI или DBD :: mysql. В сообщениях не о чем беспокоиться, но я признаю, что они неприглядные.

Сообщения приходят как оставшиеся объекты Perl / Javascript, уничтожаемыенеупорядоченный путь во время глобального уничтожения Perl.Если вы хотите избежать их, уничтожьте ваш объект $mech перед выходом из приложения.

undef $mech;
# end of program

Если объект $mech был освобожден до закрытия программы, мост Perl / Javascript также можно закрытьвниз по порядку.

Также обратите внимание, что предпочтительный форум для вопросов о WWW :: Mechanize :: Firefox - http://perlmonks.org:)

...