---
name: "ExtUtils::Miniperl"
section: "3p"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/ExtUtils::Miniperl"
---

# ExtUtils::Miniperl(3p)

write the C code for miniperlmain.c and perlmain.c

## NAME

ExtUtils::Miniperl - write the C code for miniperlmain.c and perlmain.c

## SYNOPSIS

```
    use ExtUtils::Miniperl;
    writemain(@directories);
    # or
    writemain($fh, @directories);
    # or
    writemain(\$filename, @directories);
```

## DESCRIPTION

`writemain()` takes an argument list of zero or more directories containing archive libraries that relate to perl modules and should be linked into a new perl binary. It writes a corresponding *miniperlmain.c* or *perlmain.c* file that is a plain C file containing all the bootstrap code to make the modules associated with the libraries available from within perl. If the first argument to `writemain()` is a reference to a scalar it is used as the filename to open for output. Any other reference is used as the filehandle to write to. Otherwise output defaults to `"STDOUT"`.

The typical usage is from within perl's own Makefile (to build *perlmain.c*) or from *regen/miniperlmain.pl* (to build miniperlmain.c). So under normal circumstances you won't have to deal with this module directly.

## SEE ALSO

ExtUtils::MakeMaker
