http://qs321.pair.com?node_id=11144207


in reply to PerlPowerTools as single Windows executable

Can you please provide some examples of how your work is executed, and what its results are? ie. Show us what it does?

  • Comment on Re: PerlPowerTools as single Windows executable

Replies are listed 'Best First'.
Re^2: PerlPowerTools as single Windows executable
by kaldor (Beadle) on Jun 08, 2022 at 19:26 UTC

    Well, I'm afraid there's not much to show, but here are the 3 parts :

    1. The script 'util/packer' calls PAR::Packer 'pp' to bundle all tools (and POD) as 'PerlPowerTools.exe' :

    # build packed executable system( "pp", "-v", "-I", "lib", # include PerlPowerTools.pm, used for $VERSION "-F", $podstrip, # apply PodStrip but keep PerlPowerTools doc "-a", "$podfile;$packedpodfile", # include perldoc doc "-o", "$ppt_dir/packed/perlpowertools.exe", @tools ) == 0 or die "system failed: $?";

    2. The "fake" tool '~/perlpowertools/bin/perlpowertools' is a frontend/dispatcher to execute the tool supplied as first argument, either from '~/perlpowertools/bin' or from the (extracted) bundle :

    my $ppt_bin = defined $ENV{PAR_TEMP} ? "$ENV{PAR_TEMP}/inc/script" : d +irname(abs_path($0)); ... my $file = "$ppt_bin/$tool"; $0 = $tool; # for usage/warning/error messages my $return = do $file;

    3. The "fake" tool '~/perlpowertools/bin/perldoc' is the real perldoc, but with a custom search path to find POD in '~/perlpowertools/bin' or in the (extracted) bundle :

    # let perldoc also search in perlpowertools bin unshift @INC, dirname(abs_path(__FILE__));