Initial Commit
This commit is contained in:
49
database/perl/lib/Tie/Hash/NamedCapture.pm
Normal file
49
database/perl/lib/Tie/Hash/NamedCapture.pm
Normal file
@@ -0,0 +1,49 @@
|
||||
use strict;
|
||||
package Tie::Hash::NamedCapture;
|
||||
|
||||
our $VERSION = "0.13";
|
||||
|
||||
__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).
|
||||
|
||||
This implementation has been moved into the core executable, but you
|
||||
can still load this module for backward compatibility.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<perlreapi>, L<re>, L<perlmodlib/Pragmatic Modules>, L<perlvar/"%+">,
|
||||
L<perlvar/"%-">.
|
||||
|
||||
=cut
|
||||
Reference in New Issue
Block a user