Efectivamente... el fin de línea sigue allí.
La expresión regular lo mete dentro de los paréntesis de captura.
Como ya se ha comentado por aquí, la forma (.*) es muy glotona. Y peligrosa.
Una forma de evitarlo es reescribiendo la expresión regular para que no admite el carácter fin de fichero:
Using perl Syntax Highlighting
$temp =~ s/[^=]*=\s(.*)\s*/\1/;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Así, decimos que después de la palabra que estamos capturando con los paréntesis, pueden venir 0 o más caracteres de tipo espacio (incluyendo el carácter (o caracteres) de fin de línea).
Otra forma, la recomendada, es que dado que todas las líneas que vamos a leer del fichero tienen ese carácter, lo quitaremos nada más terminar de leer la línea:
Using perl Syntax Highlighting
chomp( $temp = <> );Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Y, otra más, por ejemplo, es hacer una expresión regular que nos extraiga el contenido que queremos: la última palabra de la línea
Using perl Syntax Highlighting
$temp =~ /(\w+)$/;
print "$1 hola\n":
# O así
($hijo) = $temp =~ /(\w+)$/;
print "$hijo hola\n";Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4