http://qs1969.pair.com?node_id=715176

themage has asked for the wisdom of the Perl Monks concerning the following question:

(re)Blessed minds,

Imagine the following code:
use DBI; my $dbh=DBI->connect("dbi:mysql:hostname=localhost;database=somedb","u +serok","passwdok"); bless $dbh, "My::Special::DBI::db"; print "can error: ", $dbh->can("error"),"\n"; package My::Special::DBI::db; use base qw(DBI::db); sub error { my $dbh=shift; return $dbh->errstr(); }
I would expect that in this code, the $dbh->can("error") returned a reference to My::Special::DBI::db::error.

However, undef is returned.

Can anyone explain me what sets my expections out of sync with reality?

For extra-information, I tested this with:

perl -v This is perl, v5.8.7 built for x86_64-linux-gnu-thread-multi perl -v This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
Thank you, everyone.