in reply to Re^6: Pelr packer pp with -C fails else ok
in thread Pelr packer pp with -C fails else ok

It sounds like it could be an interaction with external process that is on that system but not the others. I've seen issues with file cleaners deleting some of the contents of the PAR temp dir during execution, and antivirus programs can quarantine files, so something like that might be the culprit.

Sprinkling feedback throughout the program (e.g. printing @INC at startup and completion) to narrow down the point of failure would also be worthwhile.

  • Comment on Re^7: Pelr packer pp with -C fails else ok

Replies are listed 'Best First'.
Re^8: Pelr packer pp with -C fails else ok
by dkhosla1 (Sexton) on Oct 08, 2018 at 22:09 UTC
    Possible. I created a simple script to dump @INC and compiled it both with a '-C' and without.
    use strict; use warnings; use File::Temp qw(tempfile); use File::Basename; print join q{ }, @INC; print "\n";
    Builds:
    pp -C -o ichk-C ichk.pl and pp -o ichk-noC ichk.pl
    Output (output filename is listed in ** xxx ** below:
    ** ichk-C ** Invalid argument at -e line 119. Can't locate File/Temp.pm in @INC (@INC contains: /home/shared/perl5/R +EL5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/x86_64-linux /hom +e/shared/perl5/REL5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3 / +home/shared/perl5/REL5/perlbrew/perls/perl-5.16.3/lib/5.16.3/x86_64-l +inux /home/shared/perl5/REL5/perlbrew/perls/perl-5.16.3/lib/5.16.3 .) + at -e line 6. END failed--call queue aborted at -e line 616. ** ichk-noC ** par-646563687063/cache-e9945fbc61b7cb093917c5ca027e5bb0198d1d0d/inc/li +b par-646563687063/cache-e9945fbc61b7cb093917c5ca027e5bb0198d1d0d/inc + CODE(0x11d5950) CODE(0x11d5a58)

    I had just thrown in the "File::Temp" even though not used. Tomorrow I'll try without it in the code just in case something unique about this.

      Trying without File::Temp is worthwhile.

      Maybe also add a few extra print statements to see where the point of failure is:

      use strict; use warnings; BEGIN { print "INC BEGIN: "; print join q{ }, @INC; print "\n"; } use File::Temp qw(tempfile); use File::Basename; print join q{ }, @INC; print "\n"; END { print "INC END: "; print join q{ }, @INC; print "\n"; }
      UPDATE: And setting set PAR_GLOBAL_DEBUG=1 before calling the packed executable, as suggested in 1223698, will give plenty of additional feedback.

        Will try tomorrow. By the way, removing FIle::Temp did not make a difference...