
Shipping a Perl CLI as a single file with App::FatPacker
Modern software distribution has converged on a simple idea: ship a self-contained artifact. Whether that means a statically linked binary, a container image, or a snap/flatpak, the benefits are the same -- dependency management is solved at build time, platform differences are absorbed, and upgrades and rollbacks reduce to swapping a single file. Perl's App::FatPacker applies the same principle to Perl scripts. It bundles every pure-Perl dependency into a single executable file. No cpanm , no local::lib , no Makefile on the target -- just copy the file and run it. The technique is well-established -- cpm (the CPAN installer we use in the build) is itself distributed as a fatpacked binary. The distribution pipeline looks like this: Code repo --> CI --> fatpack --> deploy --> laptops / jumpboxes / servers | single file, no dependencies This post walks through how we fatpacked an internal CLI we'll call mycli , a ~90-module Perl app, into a single file. The approach generalises to any Ap
Continue reading on Dev.to
Opens in a new tab



