Hi Monks,
Today when I was studying Perl 5.10 regex, I came across following problem.
When I matched the capture pattern in named variable, I printed it after substitution, but it was not printing.
when I print the same immediately after the expression, it works. Where am I going wrong?
So can't we use the %+ anywhere in program, just like normal hash?
use feature 'say';
$test = 'abc1234asf';
$test =~ /(?<one>\w{4})(?<two>\w{4})/;
#say 'one:', $+{one}; #works
#say 'two:', $+{two};
$test =~ s/(?<three>\w{4})(?<four>\w{4})/$+{four}$+{three}/;
say 'one:', $+{one}; #NOT works
say 'two:', $+{two};
say;
say 'three:', $+{three};
say 'four:', $+{four};
say;
say 'output:', $test;
OUTPUT:
-------
one:
two:
three:abc1
four:234a
output:234aabc1sf