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

📄 linksection.pm

📁 source of perl for linux application,
💻 PM
字号:
require 5;package Pod::Simple::LinkSection;  # Based somewhat dimly on Array::Autojoinuse strict;use Pod::Simple::BlackBox;use overload( # So it'll stringify nice  '""'   => \&Pod::Simple::BlackBox::stringify_lol,  'bool' => \&Pod::Simple::BlackBox::stringify_lol,  # '.='   => \&tack_on,  # grudgingly support    'fallback' => 1,         # turn on cleverness);sub tack_on {  $_[0] = ['', {}, "$_[0]" ];  return $_[0][2] .= $_[1];}sub as_string {  goto &Pod::Simple::BlackBox::stringify_lol;}sub stringify {  goto &Pod::Simple::BlackBox::stringify_lol;}sub new {  my $class = shift;  $class = ref($class) || $class;  my $new;  if(@_ == 1) {    if (!ref($_[0] || '')) { # most common case: one bare string      return bless ['', {}, $_[0] ], $class;    } elsif( ref($_[0] || '') eq 'ARRAY') {      $new = [ @{ $_[0] } ];    } else {      Carp::croak( "$class new() doesn't know to clone $new" );    }  } else { # misc stuff    $new = [ '', {}, @_ ];  }  # By now it's a treelet:  [ 'foo', {}, ... ]  foreach my $x (@$new) {    if(ref($x || '') eq 'ARRAY') {      $x = $class->new($x); # recurse    } elsif(ref($x || '') eq 'HASH') {      $x = { %$x };    }     # otherwise leave it.  }  return bless $new, $class;}# Not much in this class is likely to be link-section specific --# but it just so happens that link-sections are about the only treelets# that are exposed to the user.1;__END__# TODO: let it be an option whether a given subclass even wants little treelets?__END__=head1 NAMEPod::Simple::LinkSection -- represent "section" attributes of L codes=head1 SYNOPSIS # a long story=head1 DESCRIPTIONThis class is not of interest to general users.Pod::Simple uses this class for representing the value of the"section" attribute of "L" start-element events.  Most applicationscan just use the normal stringification of objects of this class;they stringify to just the text content of the section,such as "foo" forC<< LZ<><Stuff/foo> >>, and "bar" for C<< LZ<><Stuff/bIZ<><ar>> >>.However, anyone particularly interested in getting the full value ofthe treelet, can just traverse the content of the treeleet@$treelet_object.  To wit:  % perl -MData::Dumper -e    "use base qw(Pod::Simple::Methody);     sub start_L { print Dumper($_[1]{'section'} ) }     __PACKAGE__->new->parse_string_document('=head1 L<Foo/bI<ar>baz>>')    "Output:  $VAR1 = bless( [                   '',                   {},                   'b',                   bless( [                            'I',                            {},                            'ar'                          ], 'Pod::Simple::LinkSection' ),                   'baz'                 ], 'Pod::Simple::LinkSection' );  But stringify it and you get just the text content:  % perl -MData::Dumper -e    "use base qw(Pod::Simple::Methody);     sub start_L { print Dumper( '' . $_[1]{'section'} ) }     __PACKAGE__->new->parse_string_document('=head1 L<Foo/bI<ar>baz>>')    "Output:  $VAR1 = 'barbaz';=head1 SEE ALSOL<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 + -