++ed by:

6 PAUSE users

Laurent Dami
and 1 contributors


Pod::POM::Web::Help - How to use this Perl documentation


Pod::POM::Web is a Web application for browsing the documentation of Perl components installed on your local machine. Since pages are dynamically generated, they are always in sync with code actually installed.

This application makes heavy use of dynamic HTML techniques like Ajax calls, autocompletion of search fields, etc., so it requires a modern browser. It has been tested on Firefox 3.5.6 and MSIE 8, but should also work more or less correctly in other browsers like Safari, Konqueror or Google Chrome.


Users can type search criteria in the single search input field and then hit RETURN. The behaviour depends on which search category was chosen in the search menu :


The input field should contain one of the (many) builtin perl functions. An autocompleter is automatically activated to help choose a proper function name. The answer will be an excerpt from the the perlfunc documentation, just for that specific function (more or less equivalent to the perldoc -f command).


This will search all perlfaq entries whose title contains the word given in the search input field.


The input field should contain a module name. The answer will be the documentation for that module. If the local Perl installation was indexed (see below), then an autocompleter is automatically activated to help choose a proper module name.


This only works if the local Perl installation was indexed (see Pod::POM::Web::Indexer on how to do it). In that case, the input field can contain one or several words, possibly connected by boolean operators (Search::QueryParser). The answer will be a list of modules that match that query, either in the documentation or in the source code. Each module is presented with some contextual excerpts of the matching words.


The browsing tree starts with two sections Perl docs and Pragmas, containg core Perl documentation. The third section Scripts reflects the structure of Perl scripts installed in perl/bin. The fourth section Modules reflects the structure of installed modules on the local machine (the various @INC directories such as lib, vendor/lib, site/lib, etc. are collapsed into a single tree). Only top-level nodes are loaded initially; subnodes are fetched dynamically through Ajax calls when opening the nodes.

Navigation in the tree is either with the mouse or with the keyboard. At any point in time, at most one node is selected : this is the one that receives keyboard events. Hence if the tree has no selected node, no keyboard events are interpreted.

Mouse events

Clicking on a node label selects that node, and displays the corresponding documentation page in the other frame (if applicable -- some nodes are just containers of other nodes, without their own documentation page).

Clicking on the square +/- icon on the left of the label toggles the open/closed status of the node.

Keyboard events

Typing a few letters will automatically select the next node starting with those letters.

Furthermore, the following special keys can be used to navigate within the tree :

keypad +

open the node

keypad -

close the node

keypad *

open the node and all its subnodes

keypad /

close the node and all its subnodes

Ctrl-keypad *

activate "show all" mode (the content of closed nodes is nevertheless visible, which may be useful for printing)

Ctrl-keypad /

deactivate the "show all" mode


if closed, open the node; if already opened, pass focus to the next item (maybe the next node, or another tabindex-enabled HTML element, such as a form control).

move to previous displayed node

move to next displayed node

if open, close the node; if already closed, move to parent node

if closed, open the node; if already open, move to next subnode


select the first node of the tree


select the last visible subnode of the tree


refresh the node's content (if that node has an URL for dynamic content).


select the node and display its documentation page


close all nodes at level of the specified digit, and open all nodes above


Pod::Webserver is another, earlier implementation of a Perl documentation server.

Pod::Browser is a Catalyst application serving local POD modules. Pod::Server is yet another

Perl documentation can be browsed in command-line mode through the perldoc utility.

See Pod::POM::Web for information about how this application is implemented.