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