---
name: "Perldoc::Search"
section: "3pm"
platform: "linux"
package: "libperldoc-search-perl"
version: "0.01-3.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Perldoc::Search"
---

# Perldoc::Search(3pm)

Index and Search local Perl Documentation

## NAME

Perldoc::Search - Index and Search local Perl Documentation

## SYNOPSIS

```
    #######################################
    # Command line utility:
    #######################################
        # This is permanent and needs to be performed only once
        # (or if new documentation gets installed).
    $ perldig -u
        # Then, search:
    $ perldig log AND apache AND connect
     1) CGI/Carp.pm                    2) CGI/Prototype.pm
     3) DBI/Changes.pm                 4) DBI/Changes.pm
    Enter number of choice:

    #######################################
    # API
    #######################################
    use  Perldoc::Search;
    my $searcher = Perldoc::Search->new();
        # This is permanent and needs to be performed only once
        # (or if new documentation gets installed).
    $searcher->update();
        # Then, search:
    for my $hit ($searcher->search("log AND apache")) {
        print $hit->path(), "\n";
    }
```

## DESCRIPTION

`"Perldoc::Search"` uses the swish-e engine to index the local Perl documentation. It provides both the command line utility `"perldig"` and an API to perform searches on the index. It uses `"SWISH::API::Common"`  as the indexing and search engine.

Most likely, you will want the command line utility `"perldig"`, please check the documentation that comes with it by calling

```
    perldoc perldig
```

In case you're interested in the API, read on.

## METHODS

- "my $searcher = Perldoc::Search-$\<gt"**new()**\>

  Instantiates a searcher object. Usually takes no parameters.

  If you like to modify the searched directories or want to pass different options to `"SWISH::API::Common"`, go ahead:

  ```
      use Config;
      my $searcher = Perldoc::Search->new(
          dirs => [$Config{installsitearch},
                   $Config{installsitelib},
                   $Config{installarchlib},
                   $Config{installprivlib},
                  ],
          swish_options => {
              swish_adm_dir => "$ENV{HOME}/.perldig",
          }
      );
  ```

- "$searcher-"**update()**\>

  Update the index. This operation might take a couple of minutes.

- "my @hits = $searcher-"search("log AND apache")\>

  Perform a search on the index with the given query. Returns a list of result objects.

  ```
           # Search documents containing
           # both "foo" and "bar"
       for my $hit ($swish->search("foo AND bar")) {
           print $hit->path(), "\n";
       }
  ```

## LEGALESE

Copyright 2005 by Mike Schilli, all rights reserved. This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

## AUTHOR

2005, Mike Schilli \<cpan@perlmeister.com\>
