Petter Reinholdtsen (HE12025-02-17): > Not sure how well 'required' matches the situation, given that 'perl > -wc' accepted the original format, but why not as both your and the > original format passes the 'perl -wc' test suite check.
(Only if you are interested in the details.) Running my own tests, I discover that some warnings are not generated when running with option -c; which, thinking about it, is logical, as they are run-time warnings, even if static analysis could catch them: /tmp/lsdvd-0.19 $ perl -wc -e 'our %x = {}' -e syntax OK /tmp/lsdvd-0.19 $ perl -w -e 'our %x = {}' Reference found where even-sized list expected at -e line 1. /tmp/lsdvd-0.19 $ perl -w -e 'if (0) { our %x = {} } else { our %x = () }' /tmp/lsdvd-0.19 $ perl -w -e 'if (1) { our %x = {} } else { our %x = () }' Reference found where even-sized list expected at -e line 1. The warning is only generated when the code is executed. It is only a warning, because perl accepts a lot of invalid syntaxes, but it really makes the output unusable: /tmp/lsdvd-0.19 $ perl -e 'use Data::Dumper; %x = {a=>42}; print Dumper \%x' $VAR1 = { 'HASH(0x562a4325f698)' => undef }; As you can see, the whole {…} is turned into a string identifier, its contents is entirely lost. > The change is > applied upstream now. Thanks! Regards, -- Nicolas George