There is nothing undefined about the comparison. The comparison evaluates to false. Perl will usually optimize out the entire statement from the parse tree when this happens to a constant test, as is the case with the "1f" line. What is interesting in this case is that perl leaves a remnant behind in the parse tree/bytecode (as Deparse seemingly indicates), presumably the constant which is being tested. This is consistent with the output of the following code:
| | | #!/usr/bin/perl -w
0;
1;
'0';
|
I believe this warning is a (very minor) bug, since the print+comparison statement should be optimized out of the parse tree entirely.
MeowChow
s aamecha.s a..a\u$&owag.print