Bienvenido a los foros de Internet, hexbase.
Siempre es recomendable poner
Using perl Syntax Highlighting
use strict
;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
al principio del programa, para que Perl nos avise de posibles errores en la programación.
Por ejemplo, veo que en el código estás leyendo el fichero y guardando cada línea en el arreglo @lines, pero luego no lo usas más.
Luego, en el if() haces referencia al escalar $string, pero no sabemos dónde la has inicializado ni qué valor tiene.
Si, suponemos, que lo que quieres es analizar las líneas del fichero para comparar si en alguna de ellas está el patrón que estás buscando, se podría hacer de esta manera (no probado):
Using perl Syntax Highlighting
open LANGFILE
, 'locale' or die $!;
my @lines = <LANGFILE>;
close(LANGFILE
);
my $langt = '?';
for my $string (@lines) {
chomp $string;
if ($string =~ m/es_ES/) {
$langt = 'es';
last;
}
}
print "$langt\n";Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Fíjate que he añadido un bucle para recorrer todas las líneas leídas del fichero. Por cada una, la almaceno en $string. Le quito el retorno de carro con chomp(). Y ya puedo ver si tiene el patrón buscado. Si lo tiene, cambio el valor de la variable $langt y termino bruscamente el bucle (no hace falta mirar más líneas).