Hello Shawn,

You were absolutely right
Thank you very much for this light.

I'll write a bug (note) into the Module::ScanDeps to record this.

Regards,
Peco

2016-09-16 4:20 GMT+02:00 Shawn Laffan <shawn.laf...@unsw.edu.au>:

> Hello Peco,
>
> The issue is probably because Module::ScanDeps does not parse that
> construct and so it is not packed.
>
> A couple of options are:
>
> 1.  Put the explicit require line in your calling script (or other library
> under your control).  There should be not need add it to @ISA as
> Net::DNS::Resolver will (should) find the packed version and handle it as
> needed.
>
> 2.  Use the -M flag when packing your script using pp.
> https://metacpan.org/pod/pp
>
> To pack only one variant:
>
> pp -M Net::DNS::Resolver::UNIX yourscript.pl
>
> Or if you just want to use one command across platforms and are happy to
> pack all variants, then you can use this.  (It needs Par::Packer 1.031 or
> higher).
>
> pp -M Net::DNS::Resolver:: yourscript.pl
>
> See the documentation at https://metacpan.org/pod/pp
>
> Regards,
> Shawn.
>
>
>
>
> On 16/09/2016 0:20, Juan José 'Peco' San Martín wrote:
>
> Hello all!
>
> I have a strange behaviour, any idea or help is welcome.
>
> I've developed a program in Linux that by dependencies needs
> /usr/lib/perl5/Net/DNS/Resolver.pm
>
> The last release of Resolver.pm starts with a BEGIN block like follows:
>
>
>
>
>
>
>
>
>
> *use vars qw(@ISA); BEGIN {         for ( $^O, 'UNIX' ) {
> my $class = join '::', __PACKAGE__, $_;                return @ISA =
> ($class) if eval "require $class;";        }        die 'failed to load
> platform specific resolver component'; } *
> The program works, so I created the executable to make an easier
> deployment...
> but I am surprised to see that it fails with the message: *failed to load
> platform specific resolver component*
>
> The workaround is replace the BEGIN by something platform dependent:
>
> require Net::DNS::Resolver::UNIX;
> @ISA = qw(Net::DNS::Resolver::UNIX);
>
> Any idea?
>
> Cheers,
> Peco
>
>
>

Reply via email to