Thank you Roderich. Interesting!
a) Instead of *use XX,* I looked the dependencies (the "use YYY" inside the XX module) to find the origin. Catched: *Net::Bonjour* b) I have a simple script that works (without *use Net::Bonjour*) and fails (with *use Net::Bonjour*) Then I did what you said, Par-exe both and compare. The one that fails, it's little bit bigger (as expected) and includes these extra files that make the exe doesn't work /lib/auto/Digest:SHA /lib/auto/Net:DNS /lib/Digest:SHA.pm /lib/IO/Socket:INET6.pm /lib/Net:Bonjour /lib/Net:Bonjour.pm /lib/Net:DNS /lib/Net:DNS.pm My current pp line is pp -I lib -l libxml2-2_.dll -l ssleay32_.dll -l zlib1_.dll -M XML::SAX::PurePerl -M XML::LibXML::SAX -M Net::SSL -M Crypt::Blowfish -0 test.exe test.pl Although we can reproduce the issue with pp -o sample.exe sample.pl Thanks Peco 2014-12-14 19:04 GMT+01:00 Roderich Schupp <[email protected]>: > > On Sun, Dec 14, 2014 at 6:30 PM, Juan José 'Peco' San Martín < > [email protected]> wrote: > >> I think PAR (Module-ScanDeps) detects "use XX" pushing the needed modules >> into the EXE, but why this change the behaviour of the script? >> > > Correct, so the executable should just contain some more modules which > can't hurt, right? > But stranger things have happened... > > Try to figure out the difference: create your excutable both with and > without "use XX", > run "unzip -l your.exe" on them (a pp'ed executable is also a zip file), > sort the outputs and run diff on them. > > >> It's not sane, but at this point my pp line includes all the DLLs/.a >> libraries that exist (double checked with the list of Roderich). >> > > Note that adding *.a libraries is useless in this context. And do NOT > simply add "all DLLs that exist", esp. do NOT add perl520.dll, libgcc*.dll, > libstdc++*.dll, libwinpthread*.dll. > > Cheers, Roderich >
