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

Reply via email to