{ package Matched; sub TIEARRAY { bless \my$x, $_[0]; } sub FETCH { my $n = $_[1]; substr $_, $-[$n], $+[$n] - $-[$n]; } sub STORE { my $n = $_[1]; substr($_, $-[$n], $+[$n] - $-[$n]) = $_[2]; } tie @~, Matched::; } local $\ = $/; $_ = "johnq.smith1"; /(\d+$)/ or die "no number"; $~[1]++; print;