# man > perlutil(1)

[_PERLUTIL_(1)](https://www.chedong.com/phpMan.php/man/PERLUTIL/1/markdown)                       Perl Programmers Reference Guide                       [_PERLUTIL_(1)](https://www.chedong.com/phpMan.php/man/PERLUTIL/1/markdown)

## NAME
       perlutil - utilities packaged with the Perl distribution

## DESCRIPTION
       Along with the Perl interpreter itself, the Perl distribution installs a range of utilities
       on your system. There are also several utilities which are used by the Perl distribution
       itself as part of the install process. This document exists to list all of these utilities,
       explain what they are for and provide pointers to each module's documentation, if
       appropriate.

## LIST OF UTILITIES
### Documentation
       perldoc
          The  main  interface  to Perl's documentation is _perldoc_, although if you're reading this,
          it's more than likely that you've already found it. _perldoc_ will extract  and  format  the
          documentation  from  any  file  in the current directory, any Perl module installed on the
          system, or any of the standard documentation pages, such as this one. Use "perldoc <name>"
          to get information on any of the utilities described in this document.

       pod2man
       pod2text
          If it's run from a terminal, _perldoc_ will usually call _pod2man_ to translate POD (Plain Old
          Documentation - see perlpod for an explanation) into  a  manpage,  and  then  run  _man_  to
          display  it;  if  _man_  isn't available, _pod2text_ will be used instead and the output piped
          through your favourite pager.

       pod2html
          As well as these two, there is another converter: _pod2html_ will produce  HTML  pages  from
          POD.

       pod2usage
          If  you  just  want  to  know how to use the utilities described here, _pod2usage_ will just
          extract the "USAGE" section; some of the utilities will automatically  call  _pod2usage_  on
          themselves when you call them with "-help".

       podchecker
          If  you're  writing  your  own  documentation in POD, the _podchecker_ utility will look for
          errors in your markup.

       splain
          _splain_ is an interface to perldiag - paste in your error message to it, and it'll  explain
          it for you.

       _roffitall_
          The  _roffitall_  utility is not installed on your system but lives in the _pod/_ directory of
          your Perl source kit; it converts all the documentation from  the  distribution  to  _*roff_
          format, and produces a typeset PostScript or text file of the whole lot.

### Converters
       pl2pm
          To  help  you convert legacy programs to more modern Perl, the _pl2pm_ utility will help you
          convert old-style Perl 4 libraries to new-style Perl5 modules.

### Administration
       libnetcfg
          To display and change the libnet configuration run the libnetcfg command.

       perlivp
          The _perlivp_ program is set up at Perl source code build time to test the Perl  version  it
          was  built  under.   It  can  be  used  after  running  "make install" (or your platform's
          equivalent procedure) to verify that perl and its libraries have been installed correctly.

### Development
       There are a set of utilities which help you in developing Perl programs, and  in  particular,
       extending Perl with C.

       perlbug
          _perlbug_  used  to  be the recommended way to report bugs in the perl interpreter itself or
          any of the standard library modules back to the developers; bug reports and patches should
          now be submitted to <<https://github.com/Perl/perl5/issues>>.

       perlthanks
          This program provides an easy way to send a thank-you message  back  to  the  authors  and
          maintainers of perl. It's just _perlbug_ installed under another name.

       h2ph
          Back  before  Perl  had the XS system for connecting with C libraries, programmers used to
          get library  constants  by  reading  through  the  C  header  files.  You  may  still  see
          "require 'syscall.ph'"  or similar around - the _.ph_ file should be created by running _h2ph_
          on the corresponding _.h_ file. See the h2ph documentation for more  on  how  to  convert  a
          whole bunch of header files at once.

       h2xs
          _h2xs_  converts C header files into XS modules, and will try and write as much glue between
          C libraries and Perl modules as it can. It's also very useful for  creating  skeletons  of
          pure Perl modules.

       enc2xs
          _enc2xs_  builds  a  Perl  extension for use by Encode from either Unicode Character Mapping
          files (.ucm) or Tcl Encoding Files (.enc).  Besides being used internally during the build
          process of the Encode module, you can use _enc2xs_ to add your own  encoding  to  perl.   No
          knowledge of XS is necessary.

       xsubpp
          _xsubpp_  is  a  compiler  to  convert Perl XS code into C code.  It is typically run by the
          makefiles created by [ExtUtils::MakeMaker](https://www.chedong.com/phpMan.php/perldoc/ExtUtils%3A%3AMakeMaker/markdown).

          _xsubpp_ will compile XS code into C code by embedding the constructs  necessary  to  let  C
          functions  manipulate  Perl values and creates the glue necessary to let Perl access those
          functions.

       prove
          _prove_ is a command-line interface to  the  test-running  functionality  of  [Test::Harness](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AHarness/markdown).
          It's an alternative to "make test".

       corelist
          A  command-line  front-end  to  [Module::CoreList](https://www.chedong.com/phpMan.php/perldoc/Module%3A%3ACoreList/markdown),  to query what modules were shipped with
          given versions of perl.

### General tools
       A few general-purpose tools are shipped with perl, mostly because  they  came  along  modules
       included in the perl distribution.

       encguess
          _encguess_ will attempt to guess the character encoding of files.

       json_pp
          _json_pp_ is a pure Perl JSON converter and formatter.

       piconv
          _piconv_  is a Perl version of [**iconv**(1)](https://www.chedong.com/phpMan.php/man/iconv/1/markdown), a character encoding converter widely available for
          various Unixen today.  This script  was  primarily  a  technology  demonstrator  for  Perl
          v5.8.0, but you can use piconv in the place of iconv for virtually any case.

       ptar
          _ptar_ is a tar-like program, written in pure Perl.

       ptardiff
          _ptardiff_  is  a  small  utility  that  produces a diff between an extracted archive and an
          unextracted one. (Note that this  utility  requires  the  [Text::Diff](https://www.chedong.com/phpMan.php/perldoc/Text%3A%3ADiff/markdown)  module  to  function
          properly; this module isn't distributed with perl, but is available from the CPAN.)

       ptargrep
          _ptargrep_ is a utility to apply pattern matching to the contents of files in a tar archive.

       shasum
          This  utility,  that  comes  with  the  [Digest::SHA](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3ASHA/markdown) module, is used to print or verify SHA
          checksums.

       streamzip
          _streamzip_ compresses data streamed to STDIN into a streamed zip container.

       zipdetails
          _zipdetails_ displays information about the internal record structure of the zip  file.   It
          is  not  concerned  with  displaying  any details of the compressed data stored in the zip
          file.

### Installation
       These utilities help manage extra Perl modules that don't come with the perl distribution.

       cpan
          _cpan_ is a command-line interface  to  CPAN.pm.   It  allows  you  to  install  modules  or
          distributions  from  CPAN,  or  just  get  information  about them, and a lot more.  It is
          similar to the command line mode of the CPAN module,

              perl -MCPAN -e shell

       instmodsh
          A little interface to [ExtUtils::Installed](https://www.chedong.com/phpMan.php/perldoc/ExtUtils%3A%3AInstalled/markdown) to  examine  installed  modules,  validate  your
          packlists and even create a tarball from an installed module.

## SEE ALSO
       perldoc,  pod2man,  pod2text,  pod2html, pod2usage, podchecker, splain, pl2pm, perlbug, h2ph,
       h2xs, enc2xs, xsubpp, cpan, encguess, instmodsh,  json_pp,  piconv,  prove,  corelist,  ptar,
       ptardiff, shasum, streamzip, zipdetails

perl v5.38.2                                 2026-06-12                                  [_PERLUTIL_(1)](https://www.chedong.com/phpMan.php/man/PERLUTIL/1/markdown)
