#!/usr/bin/perl -l use strict; bar(); bar(); { # limit scope my @o; sub bar { my $window = "a b X20 c X5 d e X17 X12"; @o = (); my @m = ( $window =~ m/(X\d+(?{push @o, pos()}))/g ); print "Matches: @m"; print "Offsets: @o"; print " "; } } print "One last time"; bar(); __END__ Matches: X20 X5 X17 X12 Offsets: 7 12 20 24 Matches: X20 X5 X17 X12 Offsets: 7 12 20 24 One last time Matches: X20 X5 X17 X12 Offsets: 7 12 20 24