[tpm] why wouldn't violating "use warnings" always be fatal?

Fulko Hew fulko.hew at gmail.com
Fri Aug 22 11:32:48 PDT 2014


I just got bitten by different behavior on different platforms,
and I can't justify it. Perhaps someone out there can?

Platform #1: Perl 5.8.8 on Fedora    (development system)
Platform #2: Perl 5.8.8 on Debian    (production system)

It turns out my application _did_ have a bug in it, but it wasn't
detected during my testing when run on the dev sys, but failed
when the same dataset was encountered on the production system.

a) I have 'use strict' and 'use warnings' in my app.
b) I had an uninitialized variable used in a print statement.

On the production machine... my app died with the error:
'Use of uninitialized value in concatenation'
just as you would expect.

But on my dev sys, the app doesn't die, or even complain!

Once I found out what was happening, I ran it under the debugger on my dev
sys,
and when I stepped through the print statement... It bitches and dies.
But without the debugger,  all is (apparently) happy.
(That's why I didn't detect and fix the bug during testing.)

So...
Why would my dev sys only flag and die under the debugger (and not with a
normal run)?
And why does my prod system, work correctly (ie. flag and die) ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/toronto-pm/attachments/20140822/1ed6326c/attachment.html>


More information about the toronto-pm mailing list