---
name: "Pod::Index::Search"
section: "3pm"
platform: "linux"
package: "libpod-index-perl"
version: "0.14-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Pod::Index::Search"
---

# Pod::Index::Search(3pm)

Search for keywords in an indexed pod

## NAME

Pod::Index::Search - Search for keywords in an indexed pod

## SYNOPSIS

```
    use Pod::Index::Search;
    my $q = Pod::Index::Search->new;
    my @results = $q->search('getprotobyname');
    for my $r (@results) {
        printf "%s\t%s\n", $r->podname, $r->line;
        print $r->pod;
    }
    my @subtopics = $q->subtopics('operator');
```

## DESCRIPTION

This module searches an index created by Pod::Index::Builder. Search results are returned as Pod::Index::Entry objects.

It is also possible to search for subtopics for a keyword. For example, a search for "operator" might return things like

```
    operator, conditional
    operator, filetest
    operator, logical
    operator, precedence
    operator, relational
```

The subtopics returned are simple strings.

## METHODS

- new

  ```
      my $q = Pod::Index::Search->new(%args);
  ```

  Create a new search object. Possible arguments are:

  - "fh"

    The filehandle of the index to use. If omitted, `"perlindex::DATA"` is used.

  - "filename"

    The filename of the index to use. Note that you can specify either `"fh"` or filename, but not both.

  - "filemap"

    A subroutine reference that takes a podname and returns a filename. A simple example might be:

    ```
        sub {
            my $podname = shift;
            return "/usr/lib/perl5/5.8.7/pod/$podname.pod";
        }
    ```

    The podname is in colon-delimited Perl package syntax.

    The default `"filemap"` returns the first file in `@INC` that seems to have the  proper documentation (either a .pod or .pm file).

  - "nocase"

    If true, the search will be case-insensitive.

- search($keyword)

  Do the actual search in the index.  Returns a list of search results, as Pod::Index::Entry objects.

- subtopics($keyword, %options)

  ```
      my @topics = $q->subtopics('operator');
      my @topics = $q->subtopics('operator', deep => 1);
  ```

  Lists the subtopics for a given keyword. If `"deep"` is given, it includes all subtopics; otherwise, only the first level of subtopics is included.

## VERSION

0\.14

## SEE ALSO

Pod::Index::Entry, Pod::Index::Builder

## AUTHOR

Ivan Tubert-Brohman \<itub@cpan.org\>

## COPYRIGHT

Copyright (c) 2005 Ivan Tubert-Brohman. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
