Fri Jan 06 03:02:15 2012: Request 73785 was acted upon.
Transaction: Ticket created by FANGLY
       Queue: Module-ScanDeps
     Subject: scandeps -c  fails on modules that depend on Getopt::Euclid
   Broken in: 1.07
    Severity: (no value)
       Owner: Nobody
  Requestors: florent.an...@gmail.com
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=73785 >


Hi,

If a module uses Getopt::Euclid to parse its CLI arguments and that some
 arguments are required, the 'scandeps -c' command fails.

For example, with the attached script:

$ ./simple.pl 
Missing required argument:
        -s[ize]=<h>x<w>
(Try this for usage help : simple.pl --help)
(Try this for full manual: simple.pl --man )

This is an error because the required argument is missing. Now if I scan
the dependencies:

$ scandeps -c simple.pl
Missing required argument:
        -s[ize]=<h>x<w>
(Try this for usage help : simple.pl --help)
(Try this for full manual: simple.pl --man )

SYSTEM ERROR in compiling simple.pl: 512 at
/usr/share/perl5/Module/ScanDeps.pm line 1296.

Whereas:
$ perl -c simple.pl 
simple.pl syntax OK

The reason perl -c works is that Getopt::Euclid checks the value of $^C
to workaround the issues associated with having been called in
compile-mode and to not report any error message. However, scandeps
seems to call something around the lines of "perl simple.pl", which
generates an error.

In short, if scandeps could call "perl -c simple.pl" or "perl simple.pl"
but somehow have $^C set to 1, then it would be fine.

Regards,

Florent

Reply via email to