http://www.perlmonks.org?node_id=724699


in reply to Re: How to safely test if a database handle is capable of transactions?
in thread How to safely test if a database handle is capable of transactions?

ikegami: I'm just wondering:

Why do you say:
eval { local $dbh->{AutoCommit} = 0; }; $self->{_can_do_transactions} = $@ ? 0 : 1;
can be written more reliably as
$self->{_can_do_transactions} = eval { local $dbh->{AutoCommit} = 0; 1 };
?

Replies are listed 'Best First'.
Re^3: How to safely test if a database handle is capable of transactions?
by ikegami (Patriarch) on Nov 19, 2008 at 21:50 UTC
    If there's an eval without a local $@; in the code that handles $dbh->{AutoCommit} = $previous_value;, then $@ will get clobbered. Keep in mind that $dbh->{AutoCommit} is a tied variable.