but it also means that there may only be one object in the transaction.
See my example in another node in this thread about how you can easily write a wrapper package to allow this.
sub code (&) {return $_[0]}
Why not just use sub instead of code and call like transaction [ $foo, $bar ], sub { ... };?
Another small fix is that the "commit not safe after errors, transaction rolled back" message should be croak()ed, not die()d.
Not really. Note that $@ already contains the caller's filename and line number. I think this looks very nice:
died at foo.pl line 13. commit not safe after errors, transaction rolled back at Transactions. +pm line 123.
I wanted a (&) prototype to allow the sub keyword to be left out. So I tried several solutions to select a transaction capable object, $T being my most recent try.
But the more I think about it, typing sub isn't so bad. As you say, if you simply supply the dbh to transaction(), nested transactions can be supported.
I'll whip up a third version soon.
Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }
In reply to Re: Re: RFC: Transactions.pm
by Juerd
in thread RFC: Transactions.pm
by Juerd
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |