普通whileに入れちゃうんじゃないかな
my $param = '123a456';
my $n = '';
while ($param =~ s/[0-9]+//) {
 $n = $&;
 print 'debug $n='.$n.' $parm='.$param."\r\n";
}
print 'end';