---
name: "Pod::Tree::PerlLib"
section: "3pm"
platform: "linux"
package: "libpod-tree-perl"
version: "1.31-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Pod::Tree::PerlLib"
---

# Pod::Tree::PerlLib(3pm)

translate module PODs to HTML

## NAME

Pod::Tree::PerlLib - translate module PODs to HTML

## SYNOPSIS

```
  $perl_map = Pod::Tree::PerlMap->new;
  $perl_lib = Pod::Tree::PerlLib->new( $perl_dir, $HTML_dir, $perl_map, %opts );
  $perl_lib->scan(@INC);
  $perl_lib->index;
  $perl_lib->translate;
  $top = $perl_lib->get_top_entry;
```

## DESCRIPTION

`"Pod::Tree::PerlLib"` translates module PODs to HTML. It does a recursive subdirectory search through a list of directories (typically `@INC`) to find PODs.

`"Pod::Tree::PerlLib"` generates a top-level index of all the PODs that it finds, and writes it to *HTML\_dir*`"/lib.html"`.

`"Pod::Tree::PerlLib"` generates and uses an index of the PODs that it finds to construct HTML links. Other modules can also use this index.

## METHODS

- *$perl\_lib* = "new" "Pod::Tree::PerlLib" *$perl\_dir*, *$HTML\_dir*, *$perl\_map*, *%options*

  Creates and returns a new `"Pod::Tree::PerlLib"` object.

  *$HTML\_dir* is the directory where HTML files will be written.

  *$perl\_map* maps module names to URLs.

  *%options* are passed through to `"Pod::Tree::HTML"`.

  The *$perl\_dir* argument is included for consistency with the other `"Pod::Tree::Perl*"` modules, but is currently unused.

- *$perl\_lib*-\>"scan"(*@INC*)

  Does a recursive subdirectory search through *@INC* to locate module PODs. Each module that is identified is entered into *$perl\_map*.

- *$perl\_lib*-\>"index"

  Generates a top-level index of all the modules. The index is written to *HTML\_dir*`"/lib.html"`.

- *$perl\_lib*-\>"translate"

  Translates each module POD found by `"scan"` to HTML. The HTML pages are written to *HTML\_dir*`"/lib/"`, in a subdirectory hierarchy that maps the module names.

- *$perl\_lib*-\>"get\_top\_entry"

  Returns a hash reference of the form

  ```
    { URL         => $URL,
      description => $description }
  ```

  `"Pod::Tree::PerlTop"` uses this to build a top-level index of all the Perl PODs.

## LINKING

`"Pod::Tree::PerlLib"` expects the second paragraph of the POD to have the form

```
    Foo::Bar - description
```

and enters *Foo::Bar* into *$perl\_map*. To link to a module POD, write

```
    L<Foo::Bar>
```

## REQUIRES

```
    5.005;
    HTML::Stream;
    Pod::Tree;
    Pod::Tree::HTML;
    Pod::Tree::PerlUtil;
```

## EXPORTS

Nothing.

## SEE ALSO

`"Pod::Tree::HTML"`, `"Pod::Tree::PerlMap"`

## AUTHOR

Steven McDougall, swmcd@world.std.com

## COPYRIGHT

Copyright (c) 2000 by Steven McDougall.  This module is free software; you can redistribute it and/or modify it under the same terms as Perl.
