---
name: "perl.req"
section: "1p"
platform: "linux"
package: "libb-perlreq-perl"
version: "0.72-1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/perl.req"
---

# perl.req(1p)

list requirements for Perl scripts and libraries

## NAME

perl.req - list requirements for Perl scripts and libraries

## SYNOPSIS

**perl.req** \[**-h**\|**--help**\] \[**-v**\|**--verbose**\] \[**-m**\|**--method**=*strict*\|*normal*\|*relaxed*\] \[*FILE*...\]

## DESCRIPTION

**perl.req** calculates prerequisites for each Perl source *file* specified on a command line; alternatively, a list of files is obtained from standard input, one file per line.  `"use"`, `"require"` and `"do"` statements are processed.  The output of perl.req is suitable for automatic dependency tracking (e.g. for RPM packaging).

For example, */usr/lib/perl5/File/Temp.pm* requires, in particular, `"perl(Fcntl.pm) >= 1.030"` (as of perl-5.8.6).

**perl.req** is basically a wrapper for B::PerlReq Perl compiler backend.

## OPTIONS

- **-m**, **--method**=*method*

  Use particular *method* for dependency tracking.  Alternatively, RPM\_PERL\_REQ\_METHOD environment variable can be used to set the method.

  The following methods are available:

  - **strict**

    Search thoroughly and list all requirements.  In particular, list platform-specific (non-UNIX) requirements and requirements found inside `"eval"` blocks.

  - **normal** (default)

    Enable moderate search most acceptable for RPM packaging.  That is, skip files known to be platform-specific; skip platform-specific requirements and those found inside `"eval"` blocks; skip most common requirements (e.g. `"strict.pm"`).

  - **relaxed**

    Enable relaxed mode.  That is, tolerate B::PerlReq failures; in addition to normal method, skip conditional requirements (e.g. `"require"` statements inside subroutines); skip `"do FILE"` statements; list only essential dependencies.

- **-v**, **--verbose**

  Increase verbosity.

## AUTHOR

Written by Alexey Tourbin \<at@altlinux.org\>, based on an earlier version by Ken Estes \<kestes@staff.mail.com\>, with contributions from Mikhail Zabaluev \<mhz@altlinux.org\>.

## HISTORY

Initial version of perl.req (part of RPM 3.0) done by Ken Estes in 1999.  Regular expressions were used to extract dependencies. (Later a part of ALT Linux Master 2.0, with modifications from Mikhail Zabaluev.)

Reworked in November 2002: complicated regular expressions were added to enhance search; methods added.  (Later a part of ALT Linux Master 2.2.)

Reworked in September 2003: B::Deparse was utilized to re-format Perl code before dependency extraction; hence more simple and accurate. Decoupled from rpm-build package into rpm-build-perl.  (Later a part of ALT Linux Master 2.4.)

Reworked in December 2004: B::PerlReq was developed.  Released on CPAN, see \<http://search.cpan.org/dist/rpm-build-perl/\>.

## COPYING

Copyright (c) 2003, 2004 Alexey Tourbin, ALT Linux Team.

This is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

## SEE ALSO

B::PerlReq, perl.prov
