On Sunday, February 16, 2003, at 02:33 PM, Randy W. Sims wrote:
I included a fix for this in the patch. The array @proto_arg will have an undefined slot in it when prototypes are requested and a subroutine is encounted that does not have any default parameters. That slot is reserved for the flag ( ';' - semicolon ) that indicates the start of the parms with defaults. (You can verify by changing the XS file so is_even has a default parm or changing the calls to process_file in the test script so that 'prototypes => 0') The fix is just to 'grep defined, @proto_arg'...
Okay, I've applied this to my CVS version. Will release soonish.
I think some versions of Test::Harness run the tests with -w by default, and some don't.
The thing that puzzles me is that without 'use warnings' I would not expect to see that warning:
$ perl -e "my @a=(undef,'blah');print join('',@a);"
blah
$ perl -we "my @a=(undef,'blah');print join('',@a);"
Use of uninitialized value in join or string at -e line 1.
blah
-Ken
