Hello,
thank you for all your links. They were very interesting. In the meantime I tried cava packager which is also a good packaging tool.
But I like it to solve problems. And I like the one file concept of pp and so I did not give up. And now I have found the complete solution.
Add the file "main.pl" to "packed_script.par" in the script folder where now also are "main_script.pl" and "helper_script.pl".
main.pl
if (defined $ENV{PAR_APP_REUSE}) { my $filename = $ENV{PAR_APP_REUSE}; delete $ENV{PAR_APP_REUSE}; $ENV{PAR_0} = $filename; PAR::_run_external_file($filename, 1); exit(); } my $zip = $PAR::LibCache{$ENV{PAR_PROGNAME}} || Archive::Zip->new(__FI +LE__); my $member = eval { $zip->memberNamed('script/main_script.pl') } or die qq(main.pl: Can't open perl script "script/main_script. +pl": No such file or directory ($zip)); PAR::_run_member($member, 1);
Here how to call the external helper script from the main script:
############################################################# # part in the main_script.pl where the helper script is invoked ############################################################# my $cmd; if( defined $ENV{PAR_TEMP} ) { $cmd = "$0 --par-options --reuse $ENV{PAR_TEMP}/inc/script/helper_ +script.pl"; } else { $cmd = "perl helper_script.pl"; } # invoke cmd
Now the main script and another external script "helper_script.pl" are packed in one standalone executable. It is running without the need of a perl installation. And all needed modules are packed.
Feedback to this solution is welcome.
Cheers, Dirk
In reply to Solution - pp and multiple perl scripts
by Dirk80
in thread pp and multiple perl scripts
by Dirk80
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |