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