%general-entities; ]> $LastChangedBy$ $Date$ Perl Modules Perl modules Introduction to Perl Modules The Perl module packages add useful objects to the Perl language. Modules utilized by packages throughout BLFS are listed here, along with their dependencies. Installation of the modules shown on this page should be accomplished by installing the dependencies in the order listed. The Perl Module standard build and installation instructions are shown at the bottom of this page. Where a module is shown as '(for the testsuite)' it is required if you wish to run the test for the module which uses it. In these cases, only the required dependencies are listed - there might be other modules which allow more tests to be run, but omitting them will still allow the tests to PASS. Archive::Zip-&Archive-Zip-version; Archive::Zip The Archive::Zip module allows a Perl program to create, manipulate, read, and write Zip archive files. This module uses the standard . &lfs78_checked; Archive::Zip-&Archive-Zip-version; &Archive-Zip-download-http; MD5 sum: &Archive-Zip-md5sum; Test::MockModule (http://search.cpan.org/~gfranks/Test-MockModule/) autovivification-&autovivification-version; autovivification The autovivification module allows you to lexically disable autovivification. This module uses the standard . &lfs78_checked; autovivification-&autovivification-version; &autovivification-download-http; MD5 sum: &autovivification-md5sum; Business::ISBN-&Business-ISBN-version; Business::ISBN The Business::ISBN module is for work with International Standard Book Numbers. This module and its dependency use the standard . &lfs78_checked; Business::ISBN-&Business-ISBN-version; &Business-ISBN-download-http; MD5 sum: &Business-ISBN-md5sum; Business::ISBN::Data (http://search.cpan.org/~bdfoy/Business-ISBN-Data/) Business::ISMN-&Business-ISMN-version; Business::ISMN The Business::ISMN module is for work with International Standard Music Numbers. This module uses the standard . &lfs78_checked; Business::ISMN-&Business-ISMN-version; &Business-ISMN-download-http; MD5 sum: &Business-ISMN-md5sum; Tie::Cycle (http://search.cpan.org/~bdfoy/Tie-Cycle/) Business::ISSN-&Business-ISSN-version; Business::ISSN The Business::ISSN module is for work with International Standard Serial Numbers. This module uses the standard . &lfs78_checked; Business::ISSN-&Business-ISSN-version; &Business-ISSN-download-http; MD5 sum: &Business-ISSN-md5sum; Data::Compare-&Data-Compare-version; Data::Compare The Data::Compare module compares two perl data structures. This module and its dependencies use the standard . &lfs78_checked; Data::Compare-&Data-Compare-version; &Data-Compare-download-http; MD5 sum: &Data-Compare-md5sum; File::Find::Rule (http://search.cpan.org/~rclamp/File-Find-Rule/) Number::Compare (http://search.cpan.org/dist/Number::Compare/) Text::Glob (http://search.cpan.org/dist/Text::Glob/) Data::Dump-&Data-Dump-version; Data::Dump This module provides pretty printing of data structures. It uses the standard . &lfs78_checked; Data::Dump-&Data-Dump-version; &Data-Dump-download-http; MD5 sum: &Data-Dump-md5sum; Date::Simple-&Date-Simple-version; Date::Simple Date::Simple provides a simple date object. This module uses the standard . &lfs78_checked; Date::Simple-&Date-Simple-version; &Date-Simple-download-http; MD5 sum: &Date-Simple-md5sum; Encode::EUCJPASCII-&Encode-EUCJPASCII-version; Encode::EUCJPASCII Encode::EUCJPASCII provides an eucJP-open mapping. This module uses the standard . &lfs78_checked; Encode-EUCJPASCII-&Encode-EUCJPASCII-version; &Encode-EUCJPASCII-download-http; MD5 sum: &Encode-EUCJPASCII-md5sum; Encode::HanExtra-&Encode-HanExtra-version; Encode::HanExtra The Encode::HanExtra module provides extra sets of Chinese Encodings. This module uses the standard . &lfs78_checked; Encode::HanExtra-&Encode-HanExtra-version; &Encode-HanExtra-download-http; MD5 sum: &Encode-HanExtra-md5sum; Encode::JIS2K-&Encode-JIS2K-version; Encode::JIS2K The Encode::JIS2K module provides JIS X 0212 (aka JIS 2000) Encodings. This module uses the standard . &lfs78_checked; Encode::JIS2K-&Encode-JIS2K-version; &Encode-JIS2K-download-http; MD5 sum: &Encode-JIS2K-md5sum; File::Slurp-&File-Slurp-version; File::Slurp The File::Slurp module provides Simple and Efficient Reading/Writing/Modifying of Complete Files. This module uses the standard . &lfs78_checked; File::Slurp-&File-Slurp-version; &File-Slurp-download-http; MD5 sum: &File-Slurp-md5sum; File::Which-&File-Which-version; File::Which File::Which provides a portable implementation of the 'which' utility. This module and its dependencies use the standard . &lfs78_checked; File::Which-&File-Which-version; &File-Which-download-http; MD5 sum: &File-Which-md5sum; HTML::Parser-&HTML-Parser-version; HTML::Parser The HTML::Parser distribution is a collection of modules that parse and extract information from HTML documents. This module and the dependency modules use the standard . &lfs78_checked; HTML::Parser-&HTML-Parser-version; &HTML-Parser-download-http; MD5 sum: &HTML-Parser-md5sum; HTML::Tagset (http://search.cpan.org/~petdance/HTML-Tagset/) (circular; howevever, it can be installed after HTML::Parser as it is only a run-time requirement for the included HTML::HeadParser module) IPC::Run3-&IPC-Run3-version; IPC::Run3 The IPC::Run3 module is used to run a subprocess with input/ouput redirection. This module uses the standard . &lfs78_checked; IPC-Run3-&IPC-Run3-version; &IPC-Run3-download-http; MD5 sum: &IPC-Run3-md5sum; libwww-perl-&LWP-version; (a.k.a. Bundle::LWP) libwww-perl The libwww-perl (Bundle::LWP) collection is a set of Perl modules which provide a simple and consistent application programming interface to the World-Wide Web. The main focus of the library is to provide classes and functions that allow you to write WWW clients. The library also contains modules that are of more general use and even classes that help you implement simple HTTP servers. The LWP collection and all its dependency modules use the standard . The dependencies should be installed in the order listed below. Ensure you install the dependency chain for each module before installing the modules. &lfs78_checked; libwww-perl-&LWP-version; &libwww-perl-download-http; MD5 sum: &libwww-perl-md5sum; Encode::Locale (http://search.cpan.org/~gaas/Encode-Locale/) HTML::Form (http://search.cpan.org/~gaas/HTML-Form/) HTTP::Message (http://search.cpan.org/~gaas/HTTP-Message/) HTTP::Date (http://search.cpan.org/~gaas/HTTP-Date/) IO::HTML (http://search.cpan.org/~cjm/IO-HTML/) LWP::MediaTypes (http://search.cpan.org/~gaas/LWP-MediaTypes/) HTTP::Cookies (http://search.cpan.org/~gaas/HTTP-Cookies/) HTTP::Negotiate (http://search.cpan.org/~gaas/HTTP-Negotiate/) Net::HTTP (http://search.cpan.org/~gaas/Net-HTTP/) WWW::RobotRules (http://search.cpan.org/~gaas/WWW-RobotRules/) HTTP::Daemon (http://search.cpan.org/~gaas/HTTP-Daemon/) File::Listing (http://search.cpan.org/~gaas/File-Listing/) After the LWP installation, if you want HTTPS protocol support, install List::AllUtils-&List-AllUtils-version; List::AllUtils The List::Allutils module combines List::Util and List::MoreUtils in one bite-sized package. This module and its dependencies use the standard . This package will fail (tests, but not for any obvious reason, and at runtime) if the core module List::Util is older than 1.31, as happens with e.g. with perl-5.18.2 from LFS-7.5. To test the version, you can run the following command strings /usr/lib/perl5/5.*/*/auto/List/Util/Util.so | grep -E '^[[:digit:]]\.[[:digit:]]+' and if necessary install Scalar::List::Utils (http://search.cpan.org/dist/Scalar-List-Utils/) to get a newer version of that module without updating all of perl. &lfs78_checked; List::AllUtils-&List-AllUtils-version; &List-AllUtils-download-http; MD5 sum: &List-AllUtils-md5sum; Number::Compare (http://search.cpan.org/dist/Number::Compare/) Test::Warnings (http://search.cpan.org/dist/Test::Warnings/) (for the testsuite) CPAN::Meta::Check (http://search.cpan.org/dist/CPAN::Meta::Check/) (for the testsuite) Module::Metadata (http://search.cpan.org/dist/Module::Metadata/) (for the testsuite) This is a core perl module but Test::Warnings needs at least version 1.000023 so a newer version is needed in LFS-7.7 and before. To check, run grep 'our $VERSION' /usr/lib/perl5/5.*/Module/Metadata.pm Test::Deep (http://search.cpan.org/dist/Test::Deep/) (for the testsuite) Text::Glob (http://search.cpan.org/dist/Text::Glob/) List::MoreUtils-&List-MoreUtils-version; List::MoreUtils List::MoreUtils provides the stuff missing in List::Util. This module uses the standard . &lfs78_checked; List-MoreUtils-&List-MoreUtils-version; &List-MoreUtils-download-http; MD5 sum: &List-MoreUtils-md5sum; Exporter::Tiny (http://search.cpan.org/dist/Exporter::Tiny/) (for the testsuite) Log-Log4perl-&Log-Log4perl-version; (a.k.a. Log::Log4perl) Log::Log4perl Log-Log4perl provides a Log4j implementation for perl. This module uses the standard . &lfs78_checked; Log-Log4perl-&Log-Log4perl-version; &Log-Log4perl-download-http; MD5 sum: &Log-Log4perl-md5sum; LWP-Protocol-https-&LWP-Protocol-https-version; LWP::Protocol::https LWP::Protocol::https provides https support for LWP::UserAgent (i.e. for LWP). This module uses the standard . &lfs78_checked; LWP-Protocol-https-&LWP-Protocol-https-version; &LWP-Protocol-https-download-http; MD5 sum: &LWP-Protocol-https-md5sum; IO::Socket::SSL (http://search.cpan.org/~behroozi/IO-Socket-SSL/) Net::SSLeay (http://search.cpan.org/dist/Net-SSLeay/) Mozilla::CA (http://search.cpan.org/~abh/Mozilla-CA/) Module-Build-&Module-Build-version; Module-Build Module::Build allows perl modules to be built without a make command being present. This module uses the standard . If your version of perl is 5.20.2 or earlier, a version of this module was installed as part of the core perl distribution and you do not need to install a newer version. When creating the Makefile, this module will report inc_bundling_support....disabled requires: ! inc::latest is not installed but inc::latest is experimental and not needed. &lfs78_checked; Module-Build-&Module-Build-version; &Module-Build-download-http; MD5 sum: &Module-Build-md5sum; Net::DNS-&Net-DNS-version; Net::DNS Net::DNS is a DNS resolver implemented in Perl. It can be used to perform nearly any type of DNS query from a Perl script. The Net::DNS module and all its dependencies are installed using the standard . &lfs78_checked; Net::DNS-&Net-DNS-version; &Net-DNS-download-http; MD5 sum: &Net-DNS-md5sum; Digest::HMAC (http://search.cpan.org/~gaas/Digest-HMAC/) (for the testsuite) IO::Socket::INET6 (http://search.cpan.org/~shlomif/IO-Socket-INET6-2.72/) (required for IPv6 support) IO::Socket::INET (http://search.cpan.org/~gbarr/IO/lib/IO/Socket/INET.pm) (required for IPv6 support) Socket6 (http://search.cpan.org/~umemoto/Socket6/) Regexp::Common-&Regexp-Common-version; Regexp::Common Regexp::Common provides commonly requested regular expressions. This module uses the standard . &lfs78_checked; Regexp-Common-&Regexp-Common-version; &Regexp-Common-download-http; MD5 sum: &Regexp-Common-md5sum; SGMLSpm-&SGMLSpm-version; SGMLSpm The SGMLSpm module is a Perl library used for parsing the output from James Clark's SGMLS and NSGMLS parsers. This modules uses the standard . &lfs78_checked; Before beginning the build, issue the following command to prevent an error: chmod -v 644 MYMETA.yml After the package has been installed, run the following command as the root user: ln -sv sgmlspl.pl /usr/bin/sgmlspl SGMLSpm-&SGMLSpm-version; &SGMLSpm-download-http; MD5 sum: &SGMLSpm-md5sum; Test-Command-&Test-Command-version; (Test::Command) Test::Command This module tests the exit status, STDOUT, or STDERR, of an external command. This module uses the standard . &lfs78_checked; Test-Command-&Test-Command-version; &Test-Command-download-http; MD5 sum: &Test-Command-md5sum; Test::Differences-&Test-Differences-version; Test::Differences Test::Differences - Test strings and data structures and show differences if not ok. This module and its dependency modules use the standard . &lfs78_checked; Test::Differences-&Test-Differences-version; &Test-Differences-download-http; MD5 sum: &Test-Differences-md5sum; Text::Diff (for the testsuite) (http://search.cpan.org/~ovid/Text-Diff/) Algorithm::Diff (for the testsuite) (http://search.cpan.org/~tyemq/Algorithm-Diff/) Capture::Tiny (for the testsuite) (http://search.cpan.org/dist/Capture-Tiny/) Test::Pod-&Test-Pod-version; Test::Pod Test::Pod checks for POD errors in files. It uses the standard . &lfs78_checked; Test-Pod-&Test-Pod-version; &Test-Pod-download-http; MD5 sum: &Test-Pod-md5sum; Test::Pod::Coverage-&Test-Pod-Coverage-version; Test::Pod::Coverage Test::Pod::Coverage check for pod coverage. This module and its dependency modules use the standard . &lfs78_checked; Test::Pod::Coverage-&Test-Pod-Coverage-version; &Test-Pod-Coverage-download-http; MD5 sum: &Test-Pod-Coverage-md5sum; Pod::Coverage (for the testsuite) (http://search.cpan.org/~rclamp/Pod-Coverage/) Devel::Symdump (for the testsuite) (http://search.cpan.org/~andk/Devel-Symdump/) Text::BibTeX-&Text-BibTeX-version; Text::BibTex Text::BibTeX provides an interface to read and parse BibTeX files. This module uses the , but except where noted, its dependencies are installed using the standard . This package asks for what it calls `Scalar::Util` version 1.42 or later if the core module List::Util is older than this, as happens with releases up to perl-5.20.2. To test the version, you can run the following command strings /usr/lib/perl5/5.*/*/auto/List/Util/Util.so | grep -E '^[[:digit:]]\.[[:digit:]]+' and if necessary install Scalar::List::Utils (http://search.cpan.org/dist/Scalar-List-Utils/) to get a newer version of that module without updating all of perl. &lfs78_checked; Text-BibTeX-&Text-BibTeX-version; &Text-BibTeX-download-http; MD5 sum: &Text-BibTeX-md5sum; Config::AutoConf (http://search.cpan.org/dist/Config-AutoConf/) Capture::Tiny (http://search.cpan.org/dist/Capture-Tiny/) ExtUtils-LibBuilder (http://search.cpan.org/dist/LibBuilder/) this uses the Text::Roman-&Text-Roman-version; Text::Roman Text::Roman allows conversion between Roman and Arabic algorisms (number systems, e.g. MCMXLV and 1945). This module uses the standard . &lfs78_checked; Text-Roman-&Text-Roman-version; &Text-Roman-download-http; MD5 sum: &Text-Roman-md5sum; Unicode::Collate-&Unicode-Collate-version; Unicode::Collate Unicode::Collate provides a Unicode collation algorithm. This module uses the standard . &lfs78_checked; Unicode-Collate-&Unicode-Collate-version; &Unicode-Collate-download-http; MD5 sum: &Unicode-Collate-md5sum; Unicode::LineBreak-&Unicode-LineBreak-version; Unicode::LineBreak Unicode::LineBreak provides a UAX #14 Unicode Line Breaking Algorithm. This module and its dependencies use the standard . &lfs78_checked; Unicode::LineBreak-&Unicode-LineBreak-version; &Unicode-LineBreak-download-http; MD5 sum: &Unicode-LineBreak-md5sum; MIME::Charset (http://search.cpan.org/dist/MIME-Charset/) Encode-JISX0213 (http://search.cpan.org/dist/Encode-JISX0213/) Encode-ISO2022 (http://search.cpan.org/dist/Encode-ISO2022/) URI-&URI-version; URI This module implements the URI class. Objects of this class represent "Uniform Resource Identifier references" as specified in RFC 2396 (and updated by RFC 2732). A Uniform Resource Identifier is a compact string of characters that identifies an abstract or physical resource. A Uniform Resource Identifier can be further classified as either a Uniform Resource Locator (URL) or a Uniform Resource Name (URN). The distinction between URL and URN does not matter to the URI class interface. A "URI-reference" is a URI that may have additional information attached in the form of a fragment identifier. This module uses the standard . &lfs78_checked; URI-&URI-version; &URI-download-http; MD5 sum: &URI-md5sum; XML::LibXML::Simple-&XML-LibXML-Simple-version; XML::LibXML::Simple The XML::LibXML::Simple module is a rewrite of XML::Simple to use the XML::LibXML parser for XML structures,instead of the plain Perl or SAX parsers. This module and all dependency modules use the standard . &lfs78_checked; XML::LibXML::Simple-&XML-LibXML-Simple-version; &XML-LibXML-Simple-download-http; MD5 sum: &XML-LibXML-Simple-md5sum; File::Slurp::Tiny (http://search.cpan.org/dist/File-Slurp-Tiny/) XML::LibXSLT-&XML-LibXSLT-version; XML::LibXSLT The XML::LibXSLT module provides an interface to libxslt. This module uses the standard . &lfs78_checked; XML::LibXSLT-&XML-LibXSLT-version; &XML-LibXSLT-download-http; MD5 sum: &XML-LibXSLT-md5sum; XML::Simple-&XML-Simple-version; XML::Simple The XML::Simple module is a Perl extension that provides an easy API to read and write XML (especially config files). This module and all dependency modules use the standard . &lfs78_checked; XML::Simple-&XML-Simple-version; &XML-Simple-download-http; MD5 sum: &XML-Simple-md5sum; XML::SAX (http://search.cpan.org/~grantm/XML-SAX/) (Note: this package does not support parallel build) XML::NamespaceSupport (http://search.cpan.org/~perigrin/XML-NamespaceSupport/) XML::SAX::Base (http://search.cpan.org/~grantm/XML-SAX-Base/) XML::SAX::Expat (http://search.cpan.org/~bjoern/XML-SAX-Expat/) (Note: this package does not support parallel build) XML::LibXML (http://search.cpan.org/~shlomif/XML-LibXML/) (recommended for faster parsing) Tie::IxHash (http://search.cpan.org/~chorny/Tie-IxHash/) (optionally used in the test suite) XML::Writer-&XML-Writer-version; XML::Writer XML::Writer provides a Perl extension for writing XML documents. This module uses the standard . &lfs78_checked; XML::Writer-&XML-Writer-version; &XML-Writer-download-http; MD5 sum: &XML-Writer-md5sum; Standard Installation of Perl Modules Install Perl modules by running the following commands: perl Makefile.PL && make && make test Now, as the root user: make install When reinstalling a Perl module, sometimes older versions of the module being reinstalled are in other directories specified in @INC. To delete all other versions of the module being reinstalled (not simply older ones) set the UNINST variable: make install UNINST=1 Installation of Perl Modules which use Build.PL Before perl-5.22, Module::Build was part of the core distribution. Now it must be installed separately (see above) before any of the modules which use it can be built. Install Perl modules which use Build.PL by running the following commands: perl Build.PL && ./Build && ./Build test Now, as the root user: ./Build install (Alternate) Auto Installation of Perl Modules. There is an alternate way of installing the modules using the cpan shell install command. The command automatically downloads the source from the CPAN archive, extracts it, runs the compilation, testing and installation commands mentioned above, and removes the build source tree. You may still need to install dependent library packages before running the automated installation method. The first time you run cpan, you'll be prompted to enter some information regarding download locations and methods. This information is retained in files located in ~/.cpan. Start the cpan shell by issuing 'cpan' as the root user. Any module may now be installed from the cpan>  prompt with the command: install <Module::Name> For additional commands and help, issue 'help' from the cpan>  prompt. Alternatively, for scripted or non-interactive installations, use the following syntax as the root user to install one or more modules: cpan -i <Module1::Name> <Module2::Name> Review the cpan.1 man page for additional parameters you can pass to cpan on the command line. Contents Most of these modules only install into the perl directories, but a few will also install programs (mostly, perl scripts), or even a library, into /usr Installed Programs Installed Libraries Archive::Zip: crc32 File::Find::Rule: findrule libwww-perl: lwp-download, lwp-dump, lwp-mirror, lwp-request Log::Log4perl: l4p-tmpl Module::Build config_data Pod::Coverage: pod_cover Text::BibTeX: biblex, bibparse, dumpnames Text::BibTeX: libbtparse.so Short Descriptions crc32 computes and prints to stdout the CRC-32 values of the given files. crc32 findrule is a command line wrapper to File:Find:Rule. findrule lwp-download is a script to fetch a large file from the web. lwp-download lwp-dump is used to see what headers and content is returned for a URL. lwp-dump lwp-mirror is a simple mirror utility. lwp-mirror lwp-request is a simple command line user agent. lwp-request l4p-templ prints out the text of a template Log4perl configuration for starting a new Log4perl configuration file. l4p-templ config_data is used to query or change the configuration of perl modules. config_data pod_cover is used to get a coverage analysis of the embedded documentation in a perl module. pod_cover biblex performs lexical analysis on a BibTeX file. biblex bibparse parses a series of BibTeX files with command line options to control the string post-processing behaviour. bibparse dumpnames parses a BibTeX file, splitting 'author' and 'editor' fields into lists of names, and then dumps everything to stdout. dumpnames libbtparse.so is a library for parsing and processing BibTeX data files. libbtparse.so