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