in reply to Re^2: Can't call method "do" on an undefined value error
in thread Can't call method "do" on an undefined value error

First of all, they're not mistaken; the code in the OP is incomplete.

Second of all, DBI->connect returns undef if it fails and does not throw an exception even when RaiseError is specified.

Update: thirdly, the code you just posted is just wrong. you need DBI->connect($source,$username,$password,$options) not DBI->connect("$source whatever",$options)

update 2: just one general point: if you get a perl built-in error, chances are about %99.9 that the error is correct and your assumptions are wrong. If you're convinced the interpreter is wrong, provide a reproducible, short, piece of code that shows the error. Trying to do so will in most cases show you where you're wrong, but if it really shows an error in perl itself, people will be interested. See also Don't claim that you have found a bug

Replies are listed 'Best First'.
Re^4: Can't call method "do" on an undefined value error
by runrig (Abbot) on Jul 05, 2007 at 22:34 UTC
    DBI->connect returns undef if it fails and does not throw an exception even when RaiseError is specified.

    It does (or is supposed to) throw an exception since DBI 0.91. But only two arguments are being passed to connect, so the attribute hashref is considered the username argument AFAICT, and RaiseError is not really being set.

A reply falls below the community's threshold of quality. You may see it by logging in.