Mon Jan 09 06:20:59 2017: Request 119737 was acted upon.
Transaction: Correspondence added by webmas...@korten-privat.de
       Queue: Module-ScanDeps
     Subject: Re: [rt.cpan.org #119737] Problems with detecting 
DateTime::Format::Natural dependencies
   Broken in: (no value)
    Severity: (no value)
       Owner: RSCHUPP
  Requestors: webmas...@korten-privat.de
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=119737 >


Hi Roderich,

thank you very much for the quick fix :)

answers to your comments below:


On 07.01.2017 15:30, Roderich Schupp via RT wrote:
> <URL: https://rt.cpan.org/Ticket/Display.html?id=119737 >
>
> On 2017-01-06 09:58:19, webmas...@korten-privat.de wrote:
>> The problem is, that
>> DateTime::Format::Natural.pm (~line 13) uses a whole host of packages
>> with 'use base':
>>
>> use base qw(
>>       DateTime::Format::Natural::Calc
>>       DateTime::Format::Natural::Duration
> PAR::Packer uses Module::ScanDeps to scan your program for modules that
> it uses (recursively). And this is where Module::ScanDeps falls short
> (quoted from its POD):
>
>         Chunks that span multiple lines are not handled correctly.  For
>         example, this one works:
>
>             use base 'Foo::Bar';
>
>         But this one does not:
>
>             use base
>                 'Foo::Bar';
that explains the issue, thanks for clarifying!
>
> Have you tried packing with "pp -x ..." or "pp -c ..."?
no, I'll try that before updating PAR and let you know how it turns out.
>
> Anyway, I'm adding an explicit rule for DateTime::Format::Natural to 
> Module::ScanDeps
> that should make it work "out of the box".
thanks a lot!, i'll update PAR and test the fix (after testing 'pp -x' 
and 'pp-c').
>
>> I also had to add '-M DateTime/Format/Natural/Lang/EN.pm'
>>
>> Interestingly, in this case the double colon notation did not work.
> What exactly didn't work? I tried the following:
> pp -o natural.exe -u -M DateTime::Format::Natural:: \
>     -E 'use DateTime::Format::Natural;
>         my $dt = DateTime::Format::Natural->new->parse_datetime("tomorrow");
>         say "tomorrow is $dt";'
>
> This works,
I am getting an error reported by eval that it cannot find 
DateTime/Format/Natural/Lang/EN.pm, if I add ' -M 
DateTime::Format::Natural::Lang::EN.pm'.
The error appears in a module I am using (either MP3::Tag or 
Music::Tag::MP3). Apparently that module uses eval to execute 
DateTime/Format/Natural/Lang/EN.pm. However, since that is not my code, 
and there is an easy workaround (adding the aforementioned ' -M 
DateTime::Format::Natural::Lang::EN.pm' parameter to the pp command), I 
did not bother to find out what exactly is the issue. Interestingly, the 
workaround works even under windows when specifying the module with 
forward slashes (less surprisingly it also works on mac).

Cheers and thanks again for your help!

Till

Reply via email to