perl-App-Staticperl - perl, libc, 100 modules, all in one standalone 500kb file

Property Value
Distribution ALT Linux Sisyphus
Repository Autoimports noarch
Package name perl-App-Staticperl
Package version 1.44
Package release alt1
Package architecture noarch
Package type rpm
Installed size 83.36 KB
Download size 83.36 KB
Official Mirror
This script helps you to create single-file perl interpreters
or applications, or embedding a perl interpreter in your
applications. Single-file means that it is fully self-contained - no
separate shared objects, no autoload fragments, no .pm or .pl files are
needed. And when linking statically, you can create (or embed) a single
file that contains perl interpreter, libc, all the modules you need, all
the libraries you need and of course your actual program.
With uClibc and upx on x86, you can create a single 500kb binary
that contains perl and 100 modules such as POSIX, AnyEvent, EV, IO::AIO,
Coro and so on. Or any other choice of modules (and some other size :).
To see how this turns out, you can try out smallperl and bigperl, two
pre-built static and compressed perl binaries with many and even more
modules: just follow the links at
The created files do not need write access to the file system (like PAR
does). In fact, since this script is in many ways similar to PAR::Packer,
here are the differences:
=over 4
=item * The generated executables are much smaller than PAR created ones.
Shared objects and the perl binary contain a lot of extra info, while
the static nature of staticperl allows the linker to remove all
functionality and meta-info not required by the final executable. Even
extensions statically compiled into perl at build time will only be
present in the final executable when needed.
In addition, staticperl can strip perl sources much more effectively
than PAR.
=item * The generated executables start much faster.
There is no need to unpack files, or even to parse Zip archives (which is
slow and memory-consuming business).
=item * The generated executables don't need a writable filesystem.
staticperl loads all required files directly from memory. There is no
need to unpack files into a temporary directory.
=item * More control over included files, more burden.
PAR tries to be maintenance and hassle-free - it tries to include more
files than necessary to make sure everything works out of the box. It
mostly succeeds at this, but he extra files (such as the unicode database)
can take substantial amounts of memory and file size.
With staticperl, the burden is mostly with the developer - only direct
compile-time dependencies and the AutoLoader manpage are handled automatically.
This means the modules to include often need to be tweaked manually.
All this does not preclude more permissive modes to be implemented in
the future, but right now, you have to resolve hidden dependencies
=item * PAR works out of the box, staticperl does not.
Maintaining your own custom perl build can be a pain in the ass, and while
staticperl tries to make this easy, it still requires a custom perl
build and possibly fiddling with some modules. PAR is likely to produce
results faster.
Ok, PAR never has worked for me out of the box, and for some people,
staticperl does work out of the box, as they don't count "fiddling with
module use lists" against it, but nevertheless, staticperl is certainly
a bit more difficult to use.


Package Version Architecture Repository
perl-App-Staticperl - - -


Name Value
rpmlib(PayloadIsLzma) -


Name Value
perl-App-Staticperl = 1.44-alt1


Type URL
Binary Package perl-App-Staticperl-1.44-alt1.noarch.rpm
Source Package perl-App-Staticperl-1.44-alt1.src.rpm

Install Howto

  1. Add the following line to /etc/apt/sources.list:
    rpm [Sisyphus] noarch autoimports
    rpm [Sisyphus] noarch autoimports
  2. Update the package index:
    # sudo apt-get update
  3. Install perl-App-Staticperl rpm package:
    # sudo apt-get install perl-App-Staticperl



See Also

Package Description
perl-App-Staticperl-scripts-1.44-alt1.noarch.rpm App-Staticperl scripts
perl-App-Statsbot-1.000-alt1.noarch.rpm simple IRC bot that tracks time spent in a channel
perl-App-Statsbot-scripts-1.000-alt1.noarch.rpm perl-App-Statsbot scripts
perl-App-Stopwatch-1.2.0-alt1.noarch.rpm simple console stopwatch
perl-App-Stopwatch-scripts-1.2.0-alt1.noarch.rpm App-Stopwatch scripts
perl-App-SuperviseMe-0.004-alt1.noarch.rpm very simple command superviser
perl-App-SuperviseMe-scripts-0.004-alt1.noarch.rpm App-SuperviseMe scripts
perl-App-Sv-0.014-alt1.noarch.rpm Event-based multi-process supervisor
perl-App-Sv-scripts-0.014-alt1.noarch.rpm App-Sv scripts
perl-App-Sybil-0.5-alt1.noarch.rpm Multi platform build and release manager
perl-App-Syndicator-0.0061-alt1.noarch.rpm Curses interface for reading feeds
perl-App-Syndicator-scripts-0.0061-alt1.noarch.rpm App-Syndicator scripts
perl-App-Sysadmin-Log-Simple-0.009-alt1.noarch.rpm application class for managing a simple sysadmin log
perl-App-Sysadmin-Log-Simple-scripts-0.009-alt1.noarch.rpm App-Sysadmin-Log-Simple scripts
perl-App-TEWK-tt-0.04-alt1.noarch.rpm an app that runs CXXTests