bind_columns () does
--8<--- DBI.pm # 1866
my $idx = 0;
$sth->bind_col(++$idx, shift, $attr) or return
while (@_ and $idx < $fields);
-->8---
Which may lead to errors like
Can't DBI::st=HASH(0x402ebac8)->bind_col(1, ARRAY(0x402ebe38),...), need a
reference to a scalar at /pro/lib/perl5/site_perl/5.10.1/PA-RISC2.0/DBI.pm line
1867.
something not very useful to the end-user.
I don't know why just adding 'local $Carp::CarpLevel = 1;' there
doesn't help, so I had to do
--8<---
my $idx = 0;
while (@_ and $idx < $fields) {
use Carp;
my $state = eval { local $Carp::CarpLevel = 1;
$sth->bind_col(++$idx, shift, $attr); };
if ($@) {
$@ =~ s/\s+at\s+\S+\s+line.*//s;
croak $@;
}
$state or return
}
-->8---
to get to
Can't DBI::st=HASH(0x402ec680)->bind_col(1, ARRAY(0x402ec8c0),...), need a
reference to a scalar at /pro/tu/bev/local/bin/gvH.pl line 123
which is what makes the end-user much happier. Suggestions?
--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/