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

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

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

$dbh->disconnect();

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

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

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

1 Ответ

6 голосов
/ 06 мая 2009

Эта ошибка звучит ужасно, как будто отсутствует символ, и вы запускаете только 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.
...