[perl #122695] Fix line number for else{foo}
[perl.git] / ext / Tie-Hash-NamedCapture / t / tiehash.t
1 #!./perl -w
2 use strict;
3
4 use Test::More;
5
6 my %hashes = ('+' => \%+, '-' => \%-);
7
8 foreach (['plus1'],
9          ['minus1', all => 1],
10          ['plus2', all => 0],
11          ['plus3', zlonk => 1],
12          ['minus2', thwapp => 0, all => 1],
13         ) {
14     my $name = shift @$_;
15     my $hash = $hashes{$name} = {};
16     isa_ok(tie(%$hash, 'Tie::Hash::NamedCapture', @$_),
17            'Tie::Hash::NamedCapture', "%$name");
18 }
19
20 is("abcdef" =~ /(?<foo>[ab])*(?<bar>c)(?<foo>d)(?<bar>[ef]*)/, 1,
21    "We matched");
22
23 foreach my $name (qw(+ plus1 plus2 plus3)) {
24     my $hash = $hashes{$name};
25     is_deeply($hash, { foo => 'b', bar => 'c' }, "%$name is as expected");
26 }
27
28 foreach my $name (qw(- minus1 minus2)) {
29     my $hash = $hashes{$name};
30     is_deeply($hash, { foo => [qw(b d)], bar => [qw(c ef)] },
31               "%$name is as expected");
32 }
33
34 done_testing();