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__));