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