⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpletree.pm

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 PM
字号:
require 5;package Pod::Simple::SimpleTree;use strict;use Carp ();use Pod::Simple ();use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);$VERSION = '2.02';BEGIN {  @ISA = ('Pod::Simple');  *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;}__PACKAGE__->_accessorize(  'root',   # root of the tree);#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sub _handle_element_start { # self, tagname, attrhash  DEBUG > 2 and print "Handling $_[1] start-event\n";  my $x = [$_[1], $_[2]];  if($_[0]{'_currpos'}) {    push    @{ $_[0]{'_currpos'}[0] }, $x; # insert in parent's child-list    unshift @{ $_[0]{'_currpos'} },    $x; # prefix to stack  } else {    DEBUG and print " And oo, it gets to be root!\n";    $_[0]{'_currpos'} = [   $_[0]{'root'} = $x   ];      # first event!  set to stack, and set as root.  }  DEBUG > 3 and print "Stack is now: ",    join(">", map $_->[0], @{$_[0]{'_currpos'}}), "\n";  return;}sub _handle_element_end { # self, tagname  DEBUG > 2 and print "Handling $_[1] end-event\n";  shift @{$_[0]{'_currpos'}};  DEBUG > 3 and print "Stack is now: ",    join(">", map $_->[0], @{$_[0]{'_currpos'}}), "\n";  return;}sub _handle_text { # self, text  DEBUG > 2 and print "Handling $_[1] text-event\n";  push @{ $_[0]{'_currpos'}[0] }, $_[1];  return;}# A bit of evil from the black box...  please avert your eyes, kind souls.sub _traverse_treelet_bit {  DEBUG > 2 and print "Handling $_[1] paragraph event\n";  my $self = shift;  push @{ $self->{'_currpos'}[0] }, [@_];  return;}#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1;__END__=head1 NAMEPod::Simple::SimpleTree -- parse Pod into a simple parse tree =head1 SYNOPSIS  % cat ptest.pod    =head1 PIE    I like B<pie>!    % perl -MPod::Simple::SimpleTree -MData::Dumper -e \     "print Dumper(Pod::Simple::SimpleTree->new->parse_file(shift)->root)" \     ptest.pod    $VAR1 = [            'Document',            { 'start_line' => 1 },            [              'head1',              { 'start_line' => 1 },              'PIE'            ],            [              'Para',              { 'start_line' => 3 },              'I like ',              [                'B',                {},                'pie'              ],              '!'            ]          ];=head1 DESCRIPTIONThis class is of interest to people writing a Pod processor/formatter.This class takes Pod and parses it, returning a parse tree made justof arrayrefs, and hashrefs, and strings.This is a subclass of L<Pod::Simple> and inherits all its methods.This class is inspired by XML::Parser's "Tree" parsing-style, althoughit doesn't use exactly the same LoL format.=head1 METHODSAt the end of the parse, call C<< $parser->root >> to get thetree's top node.=head1 Tree ContentsEvery element node in the parse tree is represented by an arrayref ofthe form: C<[ I<elementname>, \%attributes, I<...subnodes...> ]>.See the example tree dump in the Synopsis, above.Every text node in the tree is represented by a simple (non-ref)string scalar.  So you can test C<ref($node)> to see whather you havean element node or just a text node.The top node in the tree is C<[ 'Document', \%attributes,I<...subnodes...> ]>=head1 SEE ALSOL<Pod::Simple>L<perllol>L<The "Tree" subsubsection in XML::Parser|XML::Parser/"Tree">=head1 COPYRIGHT AND DISCLAIMERSCopyright (c) 2002 Sean M. Burke.  All rights reserved.This library is free software; you can redistribute it and/or modify itunder the same terms as Perl itself.This program is distributed in the hope that it will be useful, butwithout any warranty; without even the implied warranty ofmerchantability or fitness for a particular purpose.=head1 AUTHORSean M. Burke C<sburke@cpan.org>=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -