$|=1;
my
(
$re
,
$expected
,
$result
);
$re
= Regex::Object->new(
regex
=>
qr/(?<gr1>gr1) (?<gr2>gr2) (?<gr3>gr3)/
,
);
$expected
= 3;
$result
=
scalar
@{
$re
->match(
'gr1 gr2 gr3'
)->captures };
ok(
$result
==
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$expected
= 0;
$result
=
scalar
@{
$re
->match(
'gr1 ngr2 gr3'
)->captures };
ok(
$result
==
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$expected
=
'gr3'
;
$result
=
$re
->match(
'gr1 gr2 gr3'
)->named_captures->{gr3};
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$re
= Regex::Object->new(
regex
=>
qr/(gr1)|(gr2)/
,
);
$expected
=
'gr1'
;
$result
=
$re
->match(
'gr1'
)->last_paren_match;
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);