Apparently $dbh->do(...) uses a regex somewhere prior to actually inserting your data. Since $1, $2, and $3 are passed by reference, trying to match anything with the regex engine would reset the values. In your fix, since you're interpolating the values, you get what you originally wanted.
In reply to Re: Bitten by the lazy execution bug?
by antirice
in thread Bitten by the lazy execution bug?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |