On Tue, May 17, 2005 at 04:17:15PM -0700, Jonathan Leffler wrote: > Also, the example code used $dbh->can() > as if it returns some sort of subroutine reference - whereas the > manual only says it returns true or false. Is the DBI manual > inaccurate or just incomplete and it actually returns something > usable?
There's fairly deep magic going on here. Returning a code-ref is undocumented because of potential problems. And guess what... here's a problem. FYI: see the UNIVERSAL::can() docs for background info. > On 5/17/05, Konstantin Solodovnikov <[EMAIL PROTECTED]> wrote: > > I'm having a problem with DBD::Informix when using it's functions via a > > 'goto &$sub' mechanism. > > Que? What on earth is that? Why do you want to use it? Where did it ever > work? goto &foo is like return foo(@_) but reuses the current sub's call frame and args. It's rarely used and less rarely needed. sub prepare_sql { # uncommenting the next line will avoid core dump # return $DBH->prepare( 'select * from '); my $sub = $DBH->can( 'prepare'); @_ = ( $DBH, 'select * from ' ); goto &$sub; } Messing with @_ before using goto & is just asking for trouble. Bottom line: If it hurts then stop doing it. Tim.