<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-perl" role="wrap">
  <?dbhtml filename="perl.html"?>

  <title>Perl-&perl-version;</title>

  <indexterm zone="ch-system-perl">
    <primary sortas="a-Perl">Perl</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>The Perl package contains the Practical Extraction and Report
    Language.</para>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Perl</title>

    <para os="a00">Before starting to configure, create a basic
    <filename>/etc/hosts</filename> file which will be referenced in one
    of Perl's configuration files as well as being used used by the testsuite
    if you run that:</para>

<screen os="a01"><userinput>echo "127.0.0.1 localhost $(hostname)" &gt; /etc/hosts</userinput></screen>

    <para os="a">To have full control over the way Perl is set up, you can
    run the interactive <command>Configure</command> 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:</para>

<screen os="b"><userinput>./configure.gnu --prefix=/usr \
   -Dman1dir=/usr/share/man/man1 \
   -Dman3dir=/usr/share/man/man3 \
   -Dpager="/bin/less -isR" \
   -Dusethreads</userinput></screen>

    <variablelist os="c">
      <title>The meaning of the configure option:</title>

      <varlistentry os="c1">
        <term><parameter>-Dpager="/bin/less -isR"</parameter></term>
        <listitem>
          <para>This corrects an error in the way that <command>perldoc</command>
          invokes the <command>less</command> program.</para>
        </listitem>
      </varlistentry>
      <varlistentry os="c2">
        <term><parameter>-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3</parameter></term>
        <listitem>
          <para>Since Groff is not installed yet,
          <command>configure.gnu</command> thinks that we do not want
          man pages for Perl. Issuing these parameters overrides this decision.</para>
        </listitem>
      </varlistentry>
      <varlistentry os="c3">
        <term><parameter>-Dusethreads</parameter></term>
        <listitem>
          <para>This tells Perl to use threads.</para>
        </listitem>
      </varlistentry>
    </variablelist>

    <para os="d">Compile the package:</para>

<screen os="e"><userinput>make</userinput></screen>

    <para os="h">To test the results, issue:
    <userinput>make test</userinput>.</para>

    <para os="j">Install the package:</para>

<screen os="k"><userinput>make install</userinput></screen>

  </sect2>

  <sect2 id="contents-perl" role="content">
    <title>Contents of Perl</title>

    <segmentedlist>
      <segtitle>Installed programs</segtitle>
      <segtitle>Installed libraries</segtitle>

      <seglistitem>
        <seg>a2p, c2ph, cpan, dprofpp, enc2xs, find2perl, h2ph, h2xs, instmodsh, libnetcfg,
        perl, perl&perl-version; (link to perl), perlbug, perlcc, perldoc,
        perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man, pod2text,
        pod2usage, podchecker, podselect, prove, psed (link to s2p), pstruct (link
        to c2ph), s2p, splain, and xsubpp</seg>
        <seg>Several hundred which cannot all be listed here</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="a2p">
        <term><command>a2p</command></term>
        <listitem>
          <para>Translates awk to Perl</para>
          <indexterm zone="ch-system-perl a2p">
            <primary sortas="b-a2p">a2p</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="c2ph">
        <term><command>c2ph</command></term>
        <listitem>
          <para>Dumps C structures as generated from
          <command>cc -g -S</command></para>
          <indexterm zone="ch-system-perl c2ph">
            <primary sortas="b-c2ph">c2ph</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="cpan">
        <term><command>cpan</command></term>
        <listitem>
          <para>Shell script that provides a command interface to CPAN.pm</para>
          <indexterm zone="ch-system-perl cpan">
            <primary sortas="b-cpan">cpan</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="dprofpp">
        <term><command>dprofpp</command></term>
        <listitem>
          <para>Displays Perl profile data</para>
          <indexterm zone="ch-system-perl dprofpp">
            <primary sortas="b-dprofpp">dprofpp</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="enc2xs">
        <term><command>enc2xs</command></term>
        <listitem>
          <para>Builds a Perl extension for the Encode module from either
          Unicode Character Mappings or Tcl Encoding Files</para>
          <indexterm zone="ch-system-perl enc2xs">
            <primary sortas="b-enc2xs">enc2xs</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="find2perl">
        <term><command>find2perl</command></term>
        <listitem>
          <para>Translates <command>find</command> commands to Perl</para>
          <indexterm zone="ch-system-perl find2perl">
            <primary sortas="b-find2perl">find2perl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="h2ph">
        <term><command>h2ph</command></term>
        <listitem>
          <para>Converts <filename class="extension">.h</filename> C header
          files to <filename class="extension">.ph</filename> Perl header
          files</para>
          <indexterm zone="ch-system-perl h2ph">
            <primary sortas="b-h2ph">h2ph</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="h2xs">
        <term><command>h2xs</command></term>
        <listitem>
          <para>Converts <filename class="extension">.h</filename> C header
          files to Perl extensions</para>
          <indexterm zone="ch-system-perl h2xs">
            <primary sortas="b-h2xs">h2xs</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libnetcfg">
        <term><command>libnetcfg</command></term>
        <listitem>
          <para>Can be used to configure the
          <filename class="libraryfile">libnet</filename></para>
          <indexterm zone="ch-system-perl libnetcfg">
            <primary sortas="b-libnetcfg">libnetcfg</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="instmodsh">
        <term><command>instmodsh</command></term>
        <listitem>
          <para>A shell script for examining installed Perl modules,
          and can even create a tarball from an installed module</para>
          <indexterm zone="ch-system-perl instmodsh">
            <primary sortas="b-instmodsh">instmodsh</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="perl">
        <term><command>perl</command></term>
        <listitem>
          <para>Combines some of the best features of C, <command>sed</command>,
          <command>awk</command> and <command>sh</command> into a single
          swiss-army-knife language</para>
          <indexterm zone="ch-system-perl perl">
            <primary sortas="b-perl">perl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="perl-version">
        <term><command>perl&perl-version;</command></term>
        <listitem>
          <para>A hard link to <command>perl</command></para>
          <indexterm zone="ch-system-perl perl-version">
            <primary sortas="b-perl&perl-version;">perl&perl-version;</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="perlbug">
        <term><command>perlbug</command></term>
        <listitem>
          <para>Used to generate bug reports about Perl, or the modules that come
          with it, and mail them</para>
          <indexterm zone="ch-system-perl perlbug">
            <primary sortas="b-perlbug">perlbug</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="perlcc">
        <term><command>perlcc</command></term>
        <listitem>
          <para>Generates executables from Perl programs</para>
          <indexterm zone="ch-system-perl perlcc">
            <primary sortas="b-perlcc">perlcc</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="perldoc">
        <term><command>perldoc</command></term>
        <listitem>
          <para>Displays a piece of documentation in pod format that is embedded
          in the Perl installation tree or in a Perl script</para>
          <indexterm zone="ch-system-perl perldoc">
            <primary sortas="b-perldoc">perldoc</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="perlivp">
        <term><command>perlivp</command></term>
        <listitem>
          <para>The Perl Installation Verification Procedure; it can be used to
          verify that Perl and its libraries have been installed
          correctly</para>
          <indexterm zone="ch-system-perl perlivp">
            <primary sortas="b-perlivp">perlivp</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="piconv">
        <term><command>piconv</command></term>
        <listitem>
          <para>A Perl version of the character encoding converter
          <command>iconv</command></para>
          <indexterm zone="ch-system-perl piconv">
            <primary sortas="b-piconv">piconv</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pl2pm">
        <term><command>pl2pm</command></term>
        <listitem>
          <para>A rough tool for converting Perl4
          <filename class="extension">.pl</filename> files to Perl5
          <filename class="extension">.pm</filename> modules</para>
          <indexterm zone="ch-system-perl pl2pm">
            <primary sortas="b-pl2pm">pl2pm</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pod2html">
        <term><command>pod2html</command></term>
        <listitem>
          <para>Converts files from pod format to HTML format</para>
          <indexterm zone="ch-system-perl pod2html">
            <primary sortas="b-pod2html">pod2html</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pod2latex">
        <term><command>pod2latex</command></term>
        <listitem>
          <para>Converts files from pod format to LaTeX format</para>
          <indexterm zone="ch-system-perl pod2latex">
            <primary sortas="b-pod2latex">pod2latex</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pod2man">
        <term><command>pod2man</command></term>
        <listitem>
          <para>Converts pod data to formatted *roff input</para>
          <indexterm zone="ch-system-perl pod2man">
            <primary sortas="b-pod2man">pod2man</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pod2text">
        <term><command>pod2text</command></term>
        <listitem>
          <para>Converts pod data to formatted ASCII text</para>
          <indexterm zone="ch-system-perl pod2text">
            <primary sortas="b-pod2text">pod2text</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pod2usage">
        <term><command>pod2usage</command></term>
        <listitem>
          <para>Prints usage messages from embedded pod docs in files</para>
          <indexterm zone="ch-system-perl pod2usage">
            <primary sortas="b-pod2usage">pod2usage</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="podchecker">
        <term><command>podchecker</command></term>
        <listitem>
          <para>Checks the syntax of pod format documentation files</para>
          <indexterm zone="ch-system-perl podchecker">
            <primary sortas="b-podchecker">podchecker</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="podselect">
        <term><command>podselect</command></term>
        <listitem>
          <para>Displays selected sections of pod documentation</para>
          <indexterm zone="ch-system-perl podselect">
            <primary sortas="b-podselect">podselect</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="prove">
        <term><command>prove</command></term>
        <listitem>
          <para>A command-line tool for running tests against Test::Harness</para>
          <indexterm zone="ch-system-perl prove">
            <primary sortas="b-prove">prove</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="psed">
        <term><command>psed</command></term>
        <listitem>
          <para>A Perl version of the stream editor <command>sed</command></para>
          <indexterm zone="ch-system-perl psed">
            <primary sortas="b-psed">psed</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pstruct">
        <term><command>pstruct</command></term>
        <listitem>
          <para>Dumps C structures as generated from <command>cc -g -S</command>
          stabs</para>
          <indexterm zone="ch-system-perl pstruct">
            <primary sortas="b-pstruct">pstruct</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="s2p">
        <term><command>s2p</command></term>
        <listitem>
          <para>Translates <command>sed</command> to Perl</para>
          <indexterm zone="ch-system-perl s2p">
            <primary sortas="b-s2p">s2p</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="splain">
        <term><command>splain</command></term>
        <listitem>
          <para>Is used to force verbose warning diagnostics in Perl</para>
          <indexterm zone="ch-system-perl splain">
            <primary sortas="b-splain">splain</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="xsubpp">
        <term><command>xsubpp</command></term>
        <listitem>
          <para>Converts Perl XS code into C code</para>
          <indexterm zone="ch-system-perl xsubpp">
            <primary sortas="b-xsubpp">xsubpp</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
