---
name: "fatpack"
section: "1p"
platform: "linux"
package: "libapp-fatpacker-perl"
version: "0.010008-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/fatpack"
---

# fatpack(1p)

Command line frontend for App::FatPacker

## NAME

fatpack - Command line frontend for App::FatPacker

## COMMANDS

### pack

```
  $ fatpack pack myscript.pl > myscript.packed.pl
```

A shortcut to do all the work of tracing, collecting packlists, extracting modules in fatlib, then concatenating into a packed script - in one shot. If you need more detailed controls for additional modules, use the following commands separately (see "RECIPES").

### trace

```
  $ fatpack trace [--to=trace-file|--to-stderr] [--use=MODULE]
      myscript.pl
```

Compiles myscript.pl (as in "perl -c") and writes out a trace file containing every module **require()**d during the compilation.

The trace file is called 'fatpacker.trace' by default; the --to option overrides this.

If you pass --to-stderr fatpack writes the trace to STDERR instead.

You cannot pass both --to and --to-stderr.

If the --use option specifies a module (or modules, if used multiple times) those modules will be additionally included in the trace output.

### packlists-for

```
  $ fatpack packlists-for Module1 Module2 Module3
```

Searches your perl's `@INC` for .packlist files containing the .pm files for the modules requested and emits a list of unique packlist files to STDOUT.

These packlists will, in a pure cpan-installation environment, be all non-core distributions required for those modules.

Unfortunately most vendors strip the .packlist files so if you installed modules via e.g. apt-get you may be missing those modules; installing your dependencies into a local::lib first is the preferred workaround.

### tree

```
  $ fatpack tree fatlib packlist1 packlist2 packlist3
```

Takes a list of packlist files and copies their contents into a tree at the requested location.

This tree should be sufficient to 'use lib' to make available all modules provided by the distributions whose packlists were specified.

### file

```
  $ fatpack file
```

Recurses into the 'lib' and 'fatlib' directories and bundles all .pm files found into a BEGIN block which adds a virtual `@INC` entry to load these files from the bundled code rather than disk.

## RECIPES

Current basic recipe for packing:

```
  $ fatpack trace myscript.pl
  $ fatpack packlists-for `cat fatpacker.trace` >packlists
  $ fatpack tree `cat packlists`
  $ fatpack file myscript.pl >myscript.packed.pl
```

## COPYRIGHT, LICENSE, AUTHOR

See the corresponding sections in App::FatPacker.
