summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MANIFEST1
-rw-r--r--ext/Tie-Hash-NamedCapture/t/tiehash.t34
2 files changed, 35 insertions, 0 deletions
diff --git a/MANIFEST b/MANIFEST
index a19bc36d17..06e020672d 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3591,6 +3591,7 @@ ext/Sys-Hostname/Hostname.xs Sys::Hostname extension external subroutines
ext/Sys-Hostname/t/Hostname.t See if Sys::Hostname works
ext/Tie-Hash-NamedCapture/NamedCapture.pm Implements %- and %+ behaviour
ext/Tie-Hash-NamedCapture/NamedCapture.xs Implements %- and %+ behaviour
+ext/Tie-Hash-NamedCapture/t/tiehash.t Tests TIEHASH
ext/Tie-Memoize/lib/Tie/Memoize.pm Base class for memoized tied hashes
ext/Tie-Memoize/t/Tie-Memoize.t Test for Tie::Memoize
ext/VMS-DCLsym/0README.txt ReadMe file for VMS::DCLsym
diff --git a/ext/Tie-Hash-NamedCapture/t/tiehash.t b/ext/Tie-Hash-NamedCapture/t/tiehash.t
new file mode 100644
index 0000000000..3ebc81ad68
--- /dev/null
+++ b/ext/Tie-Hash-NamedCapture/t/tiehash.t
@@ -0,0 +1,34 @@
+#!./perl -w
+use strict;
+
+use Test::More;
+
+my %hashes = ('+' => \%+, '-' => \%-);
+
+foreach (['plus1'],
+ ['minus1', all => 1],
+ ['plus2', all => 0],
+ ['plus3', zlonk => 1],
+ ['minus2', thwapp => 0, all => 1],
+ ) {
+ my $name = shift @$_;
+ my $hash = $hashes{$name} = {};
+ isa_ok(tie(%$hash, 'Tie::Hash::NamedCapture', @$_),
+ 'Tie::Hash::NamedCapture', "%$name");
+}
+
+is("abcdef" =~ /(?<foo>[ab])*(?<bar>c)(?<foo>d)(?<bar>[ef]*)/, 1,
+ "We matched");
+
+foreach my $name (qw(+ plus1 plus2 plus3)) {
+ my $hash = $hashes{$name};
+ is_deeply($hash, { foo => 'b', bar => 'c' }, "%$name is as expected");
+}
+
+foreach my $name (qw(- minus1 minus2)) {
+ my $hash = $hashes{$name};
+ is_deeply($hash, { foo => [qw(b d)], bar => [qw(c ef)] },
+ "%$name is as expected");
+}
+
+done_testing();