#!/usr/bin/perl
use strict;
use warnings;
use re qw/eval /;
my $pattern = q/(.)(?{
print ++$counts[0];
})^/;
my $line = 'ab';
for (0..2) {
my @counts = (0);
print "$_: ";
# $pattern .= '(?=.)';
$line =~ /$pattern/;
print "; \@counts = (", join(', ', @counts), ")\n";
}
print "\@main::counts = (", join(', ', @::counts), ")\n";
####
0: 12; @counts = (2)
1: 34; @counts = (0)
2: 56; @counts = (0)
@main::counts = ()
####
0: 12; @counts = (2)
1: 12; @counts = (2)
2: 12; @counts = (2)
@main::counts = (2)
####
0: 12; @counts = (2)
1: 12; @counts = (2)
2: 12; @counts = (2)
@main::counts = ()