Aktualizacja:
Proste, naprawdę, przypisujesz uchwyt zwracany przez connect zadzwoń do $l_dbh ale wywołaj metodę na $dbh . musisz użyj strict
.
Oryginalna odpowiedź:
Uchwyt bazy danych $dbh nie jest zdefiniowany, co oznacza, że połączenie nie powiodło się. Powinieneś albo sprawdzić zwracane wartości swoich wywołań, albo określić { RaiseError => 1} w connect zadzwoń, aby poznać przyczynę.
Co więcej, nie ma powodu, aby przed każdym wywołaniem podrzędnym poprzedzać & :Użyj ConnectFailed( ) zamiast &ConnectFailed( ) , chyba że znasz efekt poprzedzenia wywołania podrzędnego za pomocą & i pragnienie uzyskania takiego efektu.
Od perldoc perlsub :