diff options
Diffstat (limited to 't/re/re.t')
-rw-r--r-- | t/re/re.t | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/t/re/re.t b/t/re/re.t new file mode 100644 index 0000000000..8c1c1f8db0 --- /dev/null +++ b/t/re/re.t @@ -0,0 +1,46 @@ +#!./perl + +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; + require './test.pl'; +} + +use strict; +use warnings; + +use re qw(is_regexp regexp_pattern + regname regnames regnames_count); +{ + my $qr=qr/foo/pi; + ok(is_regexp($qr),'is_regexp($qr)'); + ok(!is_regexp(''),'is_regexp("")'); + is((regexp_pattern($qr))[0],'foo','regexp_pattern[0]'); + is((regexp_pattern($qr))[1],'ip','regexp_pattern[1]'); + is(regexp_pattern($qr),'(?pi-xsm:foo)','scalar regexp_pattern'); + ok(!regexp_pattern(''),'!regexp_pattern("")'); +} + +if ('1234'=~/(?:(?<A>\d)|(?<C>!))(?<B>\d)(?<A>\d)(?<B>\d)/){ + my @names = sort +regnames(); + is("@names","A B","regnames"); + @names = sort +regnames(0); + is("@names","A B","regnames"); + my $names = regnames(); + is($names, "B", "regnames in scalar context"); + @names = sort +regnames(1); + is("@names","A B C","regnames"); + is(join("", @{regname("A",1)}),"13"); + is(join("", @{regname("B",1)}),"24"); + { + if ('foobar'=~/(?<foo>foo)(?<bar>bar)/) { + is(regnames_count(),2); + } else { + ok(0); ok(0); + } + } + is(regnames_count(),3); +} +# New tests above this line, don't forget to update the test count below! +BEGIN { plan tests => 14 } +# No tests here! |