Se te olvidaron poner las comillas a
hola.1231331.txt.
Si pones un código distinto al que te proponemos, es muy posible que no salga lo mismo...
Prueba con
Using perl Syntax Highlighting
$frase = 'hola.1231331.txt';
my ($partefrase) = $frase =~ /(\d+)/;
print "$partefrase\n";Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
El valor de 1 que obtenías era el número de valores que grep() te devuelve. Sí: grep() dice que $frase tiene en su interior un patrón que corresponde con la expresión regular que le has pasado... pero NO extrae nada.