FreeBSD Porter's Handbook
Prev | Chapter 6 Special Considerations | Next

# 6.6 Using `perl`

If `MASTER_SITES` is set to `MASTER_SITE_PERL_CPAN`, then preferred value of `MASTER_SITE_SUBDIR` is top-level hierarchy name. For example, the recommend value for `p5-Module-Name` is `Module`. The top-level hierarchy can be examined at cpan.org. This keeps the port working when the author of the module changes.

The exception to this rule is when the relevant directory does not exist or the distfile does not exist in the directory. In such case, using author's id as `MASTER_SITE_SUBDIR` is allowed.

All of the tunable knobs below accept both `YES` and a version string, like `5.8.0+`. Using `YES` means that the port can be used with all of the supported Perl versions. If a port only works with specific versions of Perl, it can be indicated with a version string, specifying a minimal version (e.g. `5.7.3+`), a maximal version (e.g. `5.8.0-`) or an exact version (e.g. `5.8.3`).

Table 6-4. Variables for Ports That Use `perl`

Variable | Means
--- | ---
`USE_PERL5` | Says that the port uses `perl 5` to build and run.
`USE_PERL5_BUILD` | Says that the port uses `perl 5` to build.
`USE_PERL5_RUN` | Says that the port uses `perl 5` to run.
`PERL` | The full path of `perl 5`, either in the system or installed from a port, but without the version number. Use this if you need to replace ```#!`''lines in scripts.
`PERL_CONFIGURE` | Configure using Perl's MakeMaker. It implies `USE_PERL5`.
`PERL_MODBUILD` | Configure, build and install using Module::Build. It implies `PERL_CONFIGURE`.

Read only variables |
`PERL_VERSION` | The full version of `perl` installed (e.g., `5.8.9`).
`PERL_LEVEL` | The installed `perl` version as an integer of the form `MNNNPP` (e.g., `500809`).
`PERL_ARCH` | Where `perl` stores architecture dependent libraries. Defaults to `${ARCH}-freebsd`.
`PERL_PORT` | Name of the `perl` port that is installed (e.g., `perl5`).
`SITE_PERL` | Directory name where site specific `perl` packages go. This value is added to PLIST_SUB.

> Note: Ports of Perl modules, which do not have an official website, should link `cpan.org` in the WWW line of a `pkg-descr` file. The preferred URL form is `http://search.cpan.org/dist/Module-Name/` (including the trailing slash).

> Note: It is recommended to avoid using `${SITE_PERL}` as a dependency listing. This is problematic because it means that `bsd.perl.mk` must be included to satisfy the dependency. Additionally, if the module's files change, it would require changing all dependent ports.

Example 6-1. PERL Dependency Example

    p5-IO-Tee>=0.64:${PORTSDIR}/devel/p5-IO-Tee

Prev | Home | Next
Using GNU `gettext` | Up | Using X11

For questions about the FreeBSD ports system, e-mail <ports@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.