📄 pullparsertoken.pm
字号:
require 5;package Pod::Simple::PullParserToken; # Base class for tokens gotten from Pod::Simple::PullParser's $parser->get_token@ISA = ();$VERSION = '2.02';use strict;sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway my $class = shift; return bless [@_], ref($class) || $class;}sub type { $_[0][0] } # Can't change the type of an objectsub dump { Pod::Simple::pretty( [ @{ $_[0] } ] ) }sub is_start { $_[0][0] eq 'start' }sub is_end { $_[0][0] eq 'end' }sub is_text { $_[0][0] eq 'text' }1;__END__sub dump { '[' . _esc( @{ $_[0] } ) . ']' }# JUNK:sub _esc { return '' unless @_; my @out; foreach my $in (@_) { push @out, '"' . $in . '"'; $out[-1] =~ s/([^- \:\:\.\,\'\>\<\"\/\=\?\+\|\[\]\{\}\_a-zA-Z0-9_\`\~\!\#\%\^\&\*\(\)])/ sprintf( (ord($1) < 256) ? "\\x%02X" : "\\x{%X}", ord($1)) /eg; } return join ', ', @out;}__END__=head1 NAMEPod::Simple::PullParserToken -- tokens from Pod::Simple::PullParser=head1 SYNOPSISGiven a $parser that's an object of class Pod::Simple::PullParser(or a subclass)... while(my $token = $parser->get_token) { $DEBUG and print "Token: ", $token->dump, "\n"; if($token->is_start) { ...access $token->tagname, $token->attr, etc... } elsif($token->is_text) { ...access $token->text, $token->text_r, etc... } elsif($token->is_end) { ...access $token->tagname... } }(Also see L<Pod::Simple::PullParser>)=head1 DESCRIPTIONWhen you do $parser->get_token on a L<Pod::Simple::PullParser>, you shouldget an object of a subclass of Pod::Simple::PullParserToken.Subclasses will add methods, and will also inherit these methods:=over=item $token->typeThis returns the type of the token. This will be either the string"start", the string "text", or the string "end".Once you know what the type of an object is, you then know whatsubclass it belongs to, and therefore what methods it supports.Yes, you could probably do the same thing with code like$token->isa('Pod::Simple::PullParserEndToken'), but that's not sopretty as using just $token->type, or even the following shortcuts:=item $token->is_startThis is a shortcut for C<< $token->type() eq "start" >>=item $token->is_textThis is a shortcut for C<< $token->type() eq "text" >>=item $token->is_endThis is a shortcut for C<< $token->type() eq "end" >>=item $token->dumpThis returns a handy stringified value of this object. Thisis useful for debugging, as in: while(my $token = $parser->get_token) { $DEBUG and print "Token: ", $token->dump, "\n"; ... }=back=head1 SEE ALSOMy subclasses:L<Pod::Simple::PullParserStartToken>,L<Pod::Simple::PullParserTextToken>, andL<Pod::Simple::PullParserEndToken>.L<Pod::Simple::PullParser> and L<Pod::Simple>=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 + -