# Perl-&perl-version;

The Perl package contains the Practical Extraction and Report Language.

## Installation of Perl

By default, Perl's Compress::Raw::Zlib module builds and links against its own internal copy of Zlib. The following command will tell it to use the system-installed Zlib:

    sed -i -e '/^BUILD_ZLIB/s/True/False/' \
           -e '/^INCLUDE/s,\./zlib-src,/usr/include,' \
           -e '/^LIB/s,\./zlib-src,/usr/lib,' \
           cpan/Compress-Raw-Zlib/config.in

If you are following the boot method you will need to enable the loopback device as well as set a hostname for some of the tests:

    ip link set lo up
    hostname clfs

Before starting to configure, create a basic `/etc/hosts` file which will be referenced by one of Perl's configuration files as well as used by the testsuite:

    echo "127.0.0.1 localhost $(hostname)" > /etc/hosts

To have full control over the way Perl is set up, you can run the interactive `Configure` script and hand-pick the way this package is built. If you prefer instead to use the defaults that Perl auto-detects, prepare Perl for compilation with:

    ./configure.gnu --prefix=/usr \
       -Dvendorprefix=/usr \
       -Dman1dir=/usr/share/man/man1 \
       -Dman3dir=/usr/share/man/man3 \
       -Dpager="/bin/less -isR" \
       -Dusethreads -Duseshrplib

## The meaning of the configure option:

`-Dpager="/bin/less -isR"`

- This corrects an error in the way that `perldoc` invokes the `less` program.

`-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3`

- Since Groff is not installed yet, `configure.gnu` thinks that we do not want man pages for Perl. Issuing these parameters overrides this decision.

`-Dusethreads`

- This tells Perl to use threads.

`-Duseshrplib`

- This tells Perl to build a shared libperl.

Compile the package:

    make

To test the results, issue: `make test`.

Install the package:

    make install

## Contents of Perl

Installed programs Installed libraries Installed directory
- a2p, c2ph, config_data, corelist, cpan, cpan2dist, cpanp, cpanp-run-perl, enc2xs, find2perl, h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, perl&perl-version; (link to perl), perlbug, perldoc, perlivp, perlthanks (link to perlbug), piconv, pl2pm, pod2html, pod2latex, pod2man, pod2text, pod2usage, podchecker, podselect, prove, psed (link to s2p), pstruct (link to c2ph), ptar, ptardiff, ptargrep, s2p, shasum, splain, xsubpp, and zipdetails Several hundred which cannot all be listed here /usr/lib/perl5

Short Descriptions

`a2p`

- Translates awk to Perl

`c2ph`

- Dumps C structures as generated from `cc -g -S`

`config_data`

- Queries or changes configuration of Perl modules

`corelist`

- A commandline frontend to Module::CoreList

`cpan`

- Shell script that provides a command interface to CPAN.pm

`cpan2dist`

- The CPANPLUS distribution creator

`cpanp`

- The CPANPLUS launcher

`cpanp-run-perl`

- Perl script that (description needed)

`enc2xs`

- Builds a Perl extension for the Encode module from either Unicode Character Mappings or Tcl Encoding Files

`find2perl`

- Translates `find` commands to Perl

`h2ph`

- Converts `.h` C header files to `.ph` Perl header files

`h2xs`

- Converts `.h` C header files to Perl extensions

`instmodsh`

- A shell script for examining installed Perl modules, and can even create a tarball from an installed module

`json_pp`

- Converts data between certain input and output formats

`libnetcfg`

- Can be used to configure the `libnet`

`perl`

- Combines some of the best features of C, `sed`, `awk` and `sh` into a single swiss-army-knife language

`perl&perl-version;`

- A hard link to `perl`

`perlbug`

- Used to generate bug reports about Perl, or the modules that come with it, and mail them

`perldoc`

- Displays a piece of documentation in pod format that is embedded in the Perl installation tree or in a Perl script

`perlivp`

- The Perl Installation Verification Procedure; it can be used to verify that Perl and its libraries have been installed correctly

`perlthanks`

- Used to generate thank you messages to mail to the Perl developers

`piconv`

- A Perl version of the character encoding converter `iconv`

`pl2pm`

- A rough tool for converting Perl4 `.pl` files to Perl5 `.pm` modules

`pod2html`

- Converts files from pod format to HTML format

`pod2latex`

- Converts files from pod format to LaTeX format

`pod2man`

- Converts pod data to formatted *roff input

`pod2text`

- Converts pod data to formatted ASCII text

`pod2usage`

- Prints usage messages from embedded pod docs in files

`podchecker`

- Checks the syntax of pod format documentation files

`podselect`

- Displays selected sections of pod documentation

`prove`

- A command-line tool for running tests against Test::Harness

`psed`

- A Perl version of the stream editor `sed`

`pstruct`

- Dumps C structures as generated from `cc -g -S` stabs

`ptar`

- A `tar`-like program written in Perl

`ptardiff`

- A Perl program that compares an extracted archive with an unextracted one

`ptargrep`

- A Perl program that applies pattern matching to the contents of files in a tar archive

`s2p`

- Translates `sed` to Perl

`shasum`

- Prints or checks SHA checksums

`splain`

- Is used to force verbose warning diagnostics in Perl

`xsubpp`

- Converts Perl XS code into C code

`zipdetails`

- Displays details about the internal structure of a Zip file