Scroll to navigation

PerlReq::Utils(3pm) User Contributed Perl Documentation PerlReq::Utils(3pm)


PerlReq::Utils - auxiliary routines for B::PerlReq, perl.req and perl.prov


This module provides the following convenience functions:

Convert file path to module name, e.g. File/ -> File::Find.
Convert module name to file path, e.g. File::Find -> File/
Convert file path to conventional dependency name, e.g. File/ -> perl(File/ Note that this differs from RedHat conventional form perl(File::Find).
Convert module name to conventional dependency name, e.g. File::Find -> perl(File/ Note that this differs from RedHat conventional form perl(File::Find).
Format module version number, e.g. 2.12 -> 2.120. Currently truncated to 3 digits after decimal point, except for all zeroes, e.g. 2.000 -> 2.0.

Update. The algorithm has been amended in almost compatible way so that versions do not lose precision when truncated. Now we allow one more .ddd series at the end, but .000 is still truncated by default, e.g. 2.123 -> 2.123, 2.123456 -> 2.123.456.

Format Perl version number, e.g. 5.005_03 -> 1:5.5.30.
Extract version number from B::SV object. v-strings converted to floats according to Perl rules, e.g. 1.2.3 -> 1.002003.
Obtain a list of files passed on the command line. When command line is empty, obtain a list of files from standard input, one file per line. Die when file list is empty. Check that each file exists, or die otherwise. Canonicalize each filename with "File::Spec::rel2abs()" function (which makes no checks against the filesystem).
Obtain a list of Perl library paths from @INC variable, except for current directory. The RPM_PERL_LIB_PATH environment variable, if set, is treated as a list of paths, seprarated by colons; put these paths in front of the list. Canonicalize each path in the list.

Finally, the RPM_BUILD_ROOT environment variable, if set, is treated as installation root directory; each element of the list is then prefixed with canonicalized RPM_BUILD_ROOT path and new values are put in front of the list.

After all, only existent directories are returned.

Split given filename into its prefix (which is a valid Perl library path, according to the inc() function above) and basename. Return empty list if filename does not match any prefix.


Written by Alexey Tourbin <>.


Copyright (c) 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.


B::PerlReq, perl.req, perl.prov

2022-10-19 perl v5.36.0