sub foo {
my $window = "a b X20 c X5 d e X17 X12";
my @o = ();
my @m = ($window =~ m/(X\d+(?{print ">pos:",pos();push @o, pos()}))/g);
print "Matches: @m";
print "Offsets: @o";
print " ";
}
__END__
>pos:7
>pos:12
>pos:20
>pos:24
Matches: X20 X5 X17 X12
Offsets: 7 12 20 24
>pos:7
>pos:12
>pos:20
>pos:24
Matches: X20 X5 X17 X12
Offsets:
>pos:7
>pos:12
>pos:20
>pos:24
Matches: X20 X5 X17 X12
Offsets:
####
my @o = ();
sub foo {
my $window = "a b X20 c X5 d e X17 X12";
my @m = ($window =~ m/(X\d+(?{print ">pos:",pos();push @o, pos()}))/g);
print "Matches: @m";
print "Offsets: @o";
print " ";
}
__END__
>pos:7
>pos:12
>pos:20
>pos:24
Matches: X20 X5 X17 X12
Offsets: 7 12 20 24
>pos:7
>pos:12
>pos:20
>pos:24
Matches: X20 X5 X17 X12
Offsets: 7 12 20 24 7 12 20 24
>pos:7
>pos:12
>pos:20
>pos:24
Matches: X20 X5 X17 X12
Offsets: 7 12 20 24 7 12 20 24 7 12 20 24
####
sub foo {
my $window = "a b X20 c X5 d e X17 X12";
my @o = () if pos; # conditional declaration makes @o "static"
@o = (); # reset it always
my @m = ($window =~ m/(X\d+(?{push @o, pos()}))/g);
print "Matches: @m";
print "Offsets: @o";
print " ";
}
__END__
Matches: X20 X5 X17 X12
Offsets: 7 12 20 24
Matches: X20 X5 X17 X12
Offsets: 7 12 20 24
Matches: X20 X5 X17 X12
Offsets: 7 12 20 24