Changes for version 0.05 - 2026-10-19
- Minifier moved to its own module, App::SlimPacker::Minify.
- New: rename sub and method names across the whole bundle (--rename-subs, on by default). Names Perl looks up by string (builtins, new, DESTROY, tie/serialization methods, can('...')) are kept.
- New: rename bundled package names (--rename-modules, on by default), e.g. App::Foo::UI becomes bk::bl::UI.
- New: rename subs in import/export lists and can() strings (--rename-exports, on by default).
- New: --include and --exclude add modules to the bundle or leave them out.
- --rename-vars is the new name for --rename (old name still works).
- Moo programs no longer bundle Moose unless they use it.
- ALL_CAPS lexicals (my $ROWS) are now renamed too.
- Variables interpolated in regexes (qr/\Q$query\E/) are now renamed.
- Plugins are inlined before renaming, so they get renamed consistently.
- Fix: ternaries with a bareword branch were mistaken for labels.
- Fix: --bundle-lib-all could drop the main program from the output.
- Fix: module-only renaming could break "$Pkg::var" strings.
- Fix: Moo programs failed to run when bundled with sub or module renaming.
- Fix: XS modules keep their package names, so their compiled code loads.
Documentation
PPI-minify Perl source files
build a fatpacked, minified standalone Perl script
Modules
fatpack-style bundling helpers with PPI-based minification for standalone Perl scripts
PPI-based Perl source minifier and bundle-aware renaming engine