PERL.REQ(1)

πŸ“¦
version 0.82 Β· 2 versions
, in fedora 43

πŸ’– PERL.REQ πŸ’–

okay bestie, so you know how Perl scripts are always leaning on other stuff? yeah. this is the lil tool that snitches on them and tells you exactly what they need. it's called perl.req, it lives in section 1 of the manual, and it's lowkey iconic for packaging people.


✨ NAME ✨

perl.req β€” list requirements for Perl scripts and libraries 🫢


🌸 SYNOPSIS 🌸

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

πŸ¦‹ DESCRIPTION πŸ¦‹

so basically, perl.req calculates prerequisites for every Perl source file you hand it on the command line. no files on the command line? no problem, it'll grab a list of files from standard input instead β€” one file per line, bestie. πŸ’…

it processes use, require and do statements. and the output? chef's kiss. it's formatted so automatic dependency tracking can just eat it up (think RPM packaging, iykyk).

for example, /usr/lib/perl5/File/Temp.pm requires, in particular, perl(Fcntl.pm) >= 1.030 (as of perl-5.8.6). like, that's the vibe.

and ngl, perl.req is basically a wrapper for the B::PerlReq Perl compiler backend. that's the main character behind the scenes. ✨


πŸŽ€ OPTIONS πŸŽ€

  • -m, --method=method β€” pick which method you want for dependency tracking. or, if you're feeling extra, you can set the method with the RPM_PERL_REQ_METHOD environment variable instead.

here are the methods, bestie:

  • strict β€” search thoroughly and list all requirements. like, all of them. in particular, it lists platform-specific (non-UNIX) requirements and requirements found inside eval blocks. no skipping, no cap. πŸ”₯
  • normal (default) β€” the moderate search, most acceptable for RPM packaging. so like: skip files known to be platform-specific; skip platform-specific requirements and the ones found inside eval blocks; and skip the most common requirements (e.g. strict.pm). it's giving "we don't need to list the obvious ones". πŸ’…
  • relaxed β€” relaxed mode, baby. it tolerates B::PerlReq failures. and on top of everything normal does, it also skips conditional requirements (e.g. require statements inside subroutines); skips do FILE statements; and lists only essential dependencies. minimal. clean. 🧚
  • -v, --verbose β€” increase verbosity. more words, more info. πŸ—£οΈ

πŸ‘‘ 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>. legends, honestly. 🫢


πŸ“œ HISTORY πŸ“œ

the initial version of perl.req (part of RPM 3.0) was done by Ken Estes in 1999. regular expressions were used to extract dependencies. (later it became 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 the 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/>. the glow-up was real. ✨


πŸ’œ 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.

fr fr, it's free software β€” go wild with it, just follow the license, bestie. πŸ’–

🌈 SEE ALSO 🌈

B::PerlReq, perl.prov


and that's the whole page, bestie!! πŸŽ€ this manual page is perl v5.42.0, dated 2025-07-25, and it answers to PERL.REQ(1). slay. πŸ’…βœ¨

πŸ“¦ where this page comes from