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
This will search all
perlfaqentries 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
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.
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.
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 :
open the node
close the node
open the node and all its subnodes
close the node and all its subnodes
activate "show all" mode (the content of closed nodes is nevertheless visible, which may be useful for printing)
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.
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.