X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fre-engine-Plugin.git;a=blobdiff_plain;f=t%2F50-num_buff%2FFETCH.t;h=4c2ab04abb381211510de8635bc611bc39e4f1b3;hp=39d3f6ce3cc08fe7740bfd99fc01b30aa83af022;hb=849fd3192758cbc0432927ce1fd63cadfebd8392;hpb=75c4d57d3969015684ffccb54e5d6c715509b149 diff --git a/t/50-num_buff/FETCH.t b/t/50-num_buff/FETCH.t index 39d3f6c..4c2ab04 100644 --- a/t/50-num_buff/FETCH.t +++ b/t/50-num_buff/FETCH.t @@ -1,6 +1,25 @@ use strict; use Test::More tests => 7; + +my %rx_idx; +BEGIN { + %rx_idx = ( + q[$`] => -2, + q[$'] => -1, + q[$&] => 0, + ); + if ("$]" >= 5.017_004) { + $rx_idx{q[${^PREMATCH}]} = -5; + $rx_idx{q[${^POSTMATCH}]} = -4; + $rx_idx{q[${^MATCH}]} = -3; + } else { + $rx_idx{q[${^PREMATCH}]} = $rx_idx{q[$`]}; + $rx_idx{q[${^POSTMATCH}]} = $rx_idx{q[$']}; + $rx_idx{q[${^MATCH}]} = $rx_idx{q[$&]}; + } +} + use re::engine::Plugin ( exec => sub { my $re = shift; @@ -9,13 +28,25 @@ use re::engine::Plugin ( FETCH => sub { my ($re, $paren) = @_; - my %ret = ( - -2 => 10, - -1 => 20, - 0 => 30, - 1 => 40, + my %exp = ( + q[$`] => 10, + q[${^PREMATCH}] => 10, + q[$'] => 20, + q[${^POSTMATCH}] => 20, + q[$&] => 30, + q[${^MATCH}] => 30, + 1 => 40, ); + my %ret; + for (keys %exp) { + if (exists $rx_idx{$_}) { + $ret{$rx_idx{$_}} = $exp{$_}; + } else { + $ret{$_} = $exp{$_}; + } + } + $ret{$paren}; } ); @@ -26,10 +57,10 @@ use re::engine::Plugin ( "a" =~ /a/; -is($`, 10, '$`'); -is(${^PREMATCH}, 10, '${^PREMATCH}'); -is($', 20, q($')); +is($`, 10, '$`'); +is(${^PREMATCH}, 10, '${^PREMATCH}'); +is($', 20, q($')); is(${^POSTMATCH}, 20, '${^POSTMATCH}'); -is($&, 30, '$&'); -is(${^MATCH}, 30, '${^MATCH}'); -is($1, 40, '$1'); +is($&, 30, '$&'); +is(${^MATCH}, 30, '${^MATCH}'); +is($1, 40, '$1');