http://qs1969.pair.com?node_id=655888


in reply to Bitten by the lazy execution bug?

What you're seeing is undoubtedly a bug. It obviously should not make any difference whether the variable has been used in a string.

It's quite easy to introduce bugs of this sort when writing XS code, if you're not careful. Magical scalars (such as $1) sometimes need special treatment. I would therefore guess that this is a bug in the DBI driver you're using.

Out of curiosity, I investigated this guess a little. You didn't say which driver you're using, but you mentioned that you're using MySQL, so I had a look at the DBD::mysql module on CPAN. In the ChangeLog I see the entry:

 * Make sure to handle "magical" values in a couple of places. (Bug #20104)

listed under the changes for version 4.001. So my guess would be that you're using an older version, and that you will find this bug fixed in the latest version of the driver module.