Pod::Simple::Methody -- 将 Pod::Simple 事件转换为方法调用
require 5;
use strict;
package SomePodFormatter;
use base qw(Pod::Simple::Methody);
sub handle_text {
my($self, $text) = @_;
...
}
sub start_head1 {
my($self, $attrs) = @_;
...
}
sub end_head1 {
my($self) = @_;
...
}
...以及您想要捕获的任何其他事件的 start_/end_ 方法。
此类对编写基于 Pod::Simple 的 Pod 格式化程序的人员很有用。
此类(非常小 - 阅读源代码)覆盖了 Pod::Simple 的 _handle_element_start、_handle_text 和 _handle_element_end 方法,以便解析器事件被转换为方法调用。(否则,这是一个 Pod::Simple 的子类,并继承了它的所有方法。)
您可以将此类用作 Pod 格式化程序/处理器 的基类。
例如,当 Pod::Simple 看到 "=head1 Hi there" 时,它基本上会执行以下操作
$parser->_handle_element_start( "head1", \%attributes );
$parser->_handle_text( "Hi there" );
$parser->_handle_element_end( "head1" );
但是,如果您是 Pod::Simple::Methody 的子类,当它看到 "=head1 Hi there" 时,它将执行以下操作
$parser->start_head1( \%attributes ) if $parser->can('start_head1');
$parser->handle_text( "Hi there" ) if $parser->can('handle_text');
$parser->end_head1() if $parser->can('end_head1');
如果 Pod::Simple 发送一个事件,其中元素名称包含连字符、句点或冒号,则相应的函数名称将用下划线代替。例如,“foo.bar:baz” 将变为 start_foo_bar_baz 和 end_foo_bar_baz。
请参阅 Pod::Simple::Text 的源代码以了解使用此类的示例。
Pod::Simple,Pod::Simple::Subclassing
有关 POD 和 Pod::Simple 的问题或讨论,请发送邮件至 [email protected] 邮件列表。发送空邮件至 [email protected] 订阅。
此模块在开放的 GitHub 仓库中进行管理,https://github.com/perl-pod/pod-simple/。欢迎您随意 fork 并贡献,或克隆 git://github.com/perl-pod/pod-simple.git 并发送补丁!
欢迎您针对 Pod::Simple 发送补丁。请将错误报告发送至 <[email protected]>。
版权所有 (c) 2002 Sean M. Burke。
此库是自由软件;您可以根据与 Perl 本身相同的条款重新分发和/或修改它。
此程序按“现状”提供,不附带任何形式的明示或暗示的保证,包括但不限于适销性保证和特定用途适用性的保证。
Pod::Simple 由 Sean M. Burke <[email protected]> 创建。但请不要打扰他,他已经退休了。
Pod::Simple 由以下人员维护:
Allison Randal [email protected]
Hans Dieter Pearcey [email protected]
David E. Wheeler [email protected]