Почему я не могу отключить свои дескрипторы базы данных с помощью DBD::DB2?

Мой perl-скрипт медленный, но работает. Я подумываю отказаться от него и создать настоящее приложение DB2 с правильными привязками и т.п.; однако тем временем я хочу, чтобы это работало как заполнитель.

Я просмотрел эту документацию и там упоминается:

$dbh->disconnect();

Однако я не могу использовать его, потому что он выдает эту ошибку.

Не удается найти метод объекта «отключить» через пакет «dbh» (возможно, загрузить «dbh»?) в ./ProgramTree.pl, строка 119.

Я знаю, что мое временное приложение дает утечку и растет, потому что оно рекурсивно открывает дескрипторы базы данных. Я упускаю что-то фундаментальное?


person ojblass    schedule 06.05.2009    source источник


Ответы (1)


Эта ошибка звучит ужасно, как будто символ отсутствует, и вы используете только dbh->disconnect();.


Посмотрите, что происходит, когда у объекта нет метода:

    [~] perl -e'my $dbh = bless {}, q/foo/; $dbh->disconnect();'
    Can't locate object method "disconnect" via package "foo" at -e line 1.

По сравнению с тем, когда вы вызываете этот метод для голого слова «dbh»:

    [~] perl -e'dbh->disconnect();'
    Can't locate object method "disconnect" via package "dbh" (perhaps you forgot to load "dbh"?) at -e line 1.
person Anonymous    schedule 06.05.2009
comment
Бывает со всеми нами! Особенно мне, на самом деле... ;) - person Marcus; 07.05.2009