#! perl -slw use strict; our $s = 'testtesttest'; our $t; sub test{ $t = $s; local *_ = \$t; our $i = 0; *_ = \substr($t, $i) while s[([a-z])(?{ $i=pos()+1 })][\U$1]; } test(); print "1 pass:$t"; test() for 1..2; print "After 2 pass:$t"; ## Never executed.