Egg::Plugin::Pod::HTML - pod2html for Egg Plugin.


  use Egg qw/ Pod::HTML /;
    plugin_pod2html => {
      pod_libs    => [qw{ /path/to/lib /path/to/perl-lib }],
      output_code => 'utf8',
  # The request named/pod/[MODULE_NAME] is caught.
  # Refer to [MODULE_NAME] by $e->snip(1).
    pod => sub {
      my($d, $e)= @_;
      my $pod_body= $e->pod2html( $e->snip(1) );
      # If $e->finished(NOT_FOUND) etc. are not done, body is set.
      $e->response->body($pod_body) unless $e->finished;


It is a plugin to output the pod document as contents.


The item name of the setting is 'plugin_pod2html'.

cmd_path => [COMAND_PATH],

PATH to pod2html command.

Acquisition is tried by File::Which when omitted. Default when failing in acquisition is '/usr/bin/pod2html'.

  cmd_path => '/usr/local/bin/pod2html',

pod_libs => [LIN_DIR_ARRAY],

PATH list of place in which it looks for Pod document.

  pod_libs => [qw{ /usr/lib/perl5/5.8.0 /home/perl-lib }],

extension => [FILE_EXTENSION],

Extension of Pod document file of object.

Default is 'pm'.

  extension => 'pod',

output_code => [ENCODE_CODE],

When Egg::Plugin::Encode is loaded, it is possible to set it.

It is invalid when there is no $e-> "[ENCODE_CODE]_conv" method.

  output_code => 'utf8',

* When this setting is undefined, Pod is output as it is.


pod2html ( [MODULE_NAME], [OPTION_HASH] )

If MODULE_NAME is found in pod_libs, the HTML source is returned by the SCALAR reference.

If MODULE_NAME cannot be recognized as a module name, $e->finished(FORBIDDEN) is returned. Another and '-' of usual ':' are allowed in the delimiter of MODULE_NAME.

When MODULE_NAME is not found, $e->finished(NOT_FOUND) is returned.

Can it pass to the pod2html command in OPTION_HASH, and following option be specified.

  backlink, css, header, hiddendirs, index, quiet, recurse, verbose,

  pod => sub {
     my($d, $e)= @_;
     my $body= $e->pod2html('Egg::Plugin::Pod::HTML');
     $e->response->body($body) unless $e->finished;

pod2html_body ( [MODULE_NAME], [OPTION_HASH] )

It deletes from HTML received from 'pod2html' method excluding <body> ... </body> part and it returns it.

When the Pod document is built into arbitrary contents, this is convenient.

  pod => sub {
     my $body= $e->pod2html_body('Egg::Plugin::Pod::HTML');
     $e->view->param( pod_body => sub { $$body || "" } ) unless $e->finished;
  # And, it builds it in the template.


It is a method for the construction of the option of pod2html. This is not the one preparing it to call it from the outside by the one that this module uses.

  • new, set, set_flag, push_option, output,


File::Temp, File::Which, Egg::Plugin::Encode, Egg::Const, Egg::Release,


Masatoshi Mizuno <>


Copyright (C) 2007 by Bee Flag, Corp. <>, All Rights Reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.