diff options
author | Nicholas Clark <nick@ccl4.org> | 2010-10-14 13:29:22 +0100 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2010-10-14 14:34:28 +0100 |
commit | 8cf6f931c54936a38eedd3d17d5fa1d5af1b9009 (patch) | |
tree | d1454e028f6b92f0458daaf6522aac4117323a00 /lib | |
parent | 17b8ae88c658cb5fe05998ab824e6c02cfba7dcd (diff) | |
download | perl-8cf6f931c54936a38eedd3d17d5fa1d5af1b9009.tar.gz |
Convert lib/Tie/Hash/NamedCapture.pm to an XS module in ext/
Initially move only Tie::Hash::NamedCapture::flags from universal.c to it.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Tie/Hash/NamedCapture.pm | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/lib/Tie/Hash/NamedCapture.pm b/lib/Tie/Hash/NamedCapture.pm deleted file mode 100644 index 58ae743d87..0000000000 --- a/lib/Tie/Hash/NamedCapture.pm +++ /dev/null @@ -1,62 +0,0 @@ -package Tie::Hash::NamedCapture; - -our $VERSION = "0.06"; - -# The real meat implemented in XS in universal.c in the core, but this -# method was left behind because gv.c expects a Purl-Perl method in -# this package when it loads the tie magic for %+ and %- - -my ($one, $all) = Tie::Hash::NamedCapture::flags(); - -sub TIEHASH { - my ($pkg, %arg) = @_; - my $flag = $arg{all} ? $all : $one; - bless \$flag => $pkg; -} - -tie %+, __PACKAGE__; -tie %-, __PACKAGE__, all => 1; - -1; - -__END__ - -=head1 NAME - -Tie::Hash::NamedCapture - Named regexp capture buffers - -=head1 SYNOPSIS - - tie my %hash, "Tie::Hash::NamedCapture"; - # %hash now behaves like %+ - - tie my %hash, "Tie::Hash::NamedCapture", all => 1; - # %hash now access buffers from regexp in $qr like %- - -=head1 DESCRIPTION - -This module is used to implement the special hashes C<%+> and C<%->, but it -can be used to tie other variables as you choose. - -When the C<all> parameter is provided, then the tied hash elements will be -array refs listing the contents of each capture buffer whose name is the -same as the associated hash key. If none of these buffers were involved in -the match, the contents of that array ref will be as many C<undef> values -as there are capture buffers with that name. In other words, the tied hash -will behave as C<%->. - -When the C<all> parameter is omitted or false, then the tied hash elements -will be the contents of the leftmost defined buffer with the name of the -associated hash key. In other words, the tied hash will behave as -C<%+>. - -The keys of C<%->-like hashes correspond to all buffer names found in the -regular expression; the keys of C<%+>-like hashes list only the names of -buffers that have captured (and that are thus associated to defined values). - -=head1 SEE ALSO - -L<perlreapi>, L<re>, L<perlmodlib/Pragmatic Modules>, L<perlvar/"%+">, -L<perlvar/"%-">. - -=cut |