Allora anch'io dovrei inserire il "debug mode" (che pero` mi faccio io con vari trucchi).

Facendo
$str =~ /(\d)/g;
il vettore @- dovrebbe contenere gli indici di tutti i caratteri numerici della stringa.

Prova quindi a farti visualizzare tale vettore.

PS: non conosco il tuo contesto, per cui non so se il print ha qualche effetto. Nei CGI un print come quello da me proposto non ha senso, di solito.