The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.

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.12

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.