The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Perl::Strip - reduce file size by stripping whitespace, comments, pod etc.


   use Perl::Strip;


This module transforms perl sources into a more compact format. It does this by removing most whitespace, comments, pod, and by some other means.

The resulting code looks obfuscated, but perl (and the deparser) don't have any problems with that. Depending on the source file you can expect about 30-60% "compression".

The main target for this module is low-diskspace environments, such as App::Staticperl, boot floppy/CDs/flash environments and so on.

See also the commandline utility perlstrip.


The Perl::Strip class is a subclsass of PPI::Transform, and as such inherits all of it's methods, even the ones not documented here.

my $transform = new Perl::Strip key => value...

Creates a new Perl::Strip transform object. It supports the following parameters:

optimise_size => $bool

By default, this module optimises compressability, not raw size. This switch changes that (and makes it slower).

keep_nl => $bool

By default, whitespace will either be stripped or replaced by a space. If this option is enabled, then newlines will not be removed. This has the advantage of keeping line number information intact (e.g. for backtraces), but of course doesn't compress as well.

cache => $path

Since this module can take a very long time (minutes for the larger files in the perl distribution), it can utilise a cache directory. The directory will be created if it doesn't exist, and can be deleted at any time.

$perl = $transform->strip ($perl)

Strips the perl source in $perl and returns the stripped source.


App::Staticperl, Perl::Squish.


   Marc Lehmann <>