On Sun Mar 31 15:12:55 2013, athompso wrote:
Show quoted text> Warnings on most data types when running inside a perl interpreter
> invoked with "-W":
The -W flag enables warnings everywhere and overrides any localized attempts to disable them. In this case, the line of code is
elsif (do {no warnings 'numeric'; $$rval + 0 eq $$rval}) {
which appears to be checking whether or not the data's string and numeric values are the same in order to decide whether or not to enclose the dumped value in quotes. The warning is expected for string data and thus disabled for the enclosing block, but -W makes perl ignore that and emit a warning anyway.
In general, you should be adding "use warnings" to your code and *not* using the -w or -W flag on the command line.