1use strict; 2package Tie::Hash::NamedCapture; 3 4our $VERSION = "0.09"; 5 6require XSLoader; 7XSLoader::load(); # This returns true, which makes require happy. 8 9__END__ 10 11=head1 NAME 12 13Tie::Hash::NamedCapture - Named regexp capture buffers 14 15=head1 SYNOPSIS 16 17 tie my %hash, "Tie::Hash::NamedCapture"; 18 # %hash now behaves like %+ 19 20 tie my %hash, "Tie::Hash::NamedCapture", all => 1; 21 # %hash now access buffers from regexp in $qr like %- 22 23=head1 DESCRIPTION 24 25This module is used to implement the special hashes C<%+> and C<%->, but it 26can be used to tie other variables as you choose. 27 28When the C<all> parameter is provided, then the tied hash elements will be 29array refs listing the contents of each capture buffer whose name is the 30same as the associated hash key. If none of these buffers were involved in 31the match, the contents of that array ref will be as many C<undef> values 32as there are capture buffers with that name. In other words, the tied hash 33will behave as C<%->. 34 35When the C<all> parameter is omitted or false, then the tied hash elements 36will be the contents of the leftmost defined buffer with the name of the 37associated hash key. In other words, the tied hash will behave as 38C<%+>. 39 40The keys of C<%->-like hashes correspond to all buffer names found in the 41regular expression; the keys of C<%+>-like hashes list only the names of 42buffers that have captured (and that are thus associated to defined values). 43 44=head1 SEE ALSO 45 46L<perlreapi>, L<re>, L<perlmodlib/Pragmatic Modules>, L<perlvar/"%+">, 47L<perlvar/"%-">. 48 49=cut 50