Resulta que el problema es que los XML me vienen con una codificación que me causaba problemas (UTF-8) así que lo que tenía que hacer era leer el xml, buscar este texto y colocarle iso-8859-1 la cual es la codificación que me sirve. Al principio lo hice con un comando de Linux: sed, pero el problema era que se tardaba mucho en la ejecución, es decir, por unos 40 mil archivos tardaba alrededor de 20 minutos, así que escribí unas líneas para que hiciera todo dentro del mismo Perl ¡y la ejecución bajo a unos 7 minutos! Aquí agrego entonces el código para permitir leer las 'ñ' y los acentos en un XML:
Using perl Syntax Highlighting
my $filename="/home/principal/lector/xml/$a";
my $oldtext="UTF-8";
my $newtext="iso-8859-1";
open (IN, "$filename") || die $!;
## imprimo el contenido moficado en el archivo .bak
open (OUT, ">$filename.bak") || die $!;
while ($_ = <IN> ) {
## Si existe el texto lo reemplazo
if ($_ =~ /$oldtext/i) {
$_ =~ s/$oldtext/$newtext/gi;
}
print OUT "$_";
}
close (OUT);
close (IN);
# if ($filename =~ /\.wiki|\.awiki/)
## copio el contenido del archivo moficado .bak al archivo original
rename("$filename.bak","$filename") || die $!;
my $oldtext="UTF-8";
my $newtext="iso-8859-1";
open (IN, "$filename") || die $!;
## imprimo el contenido moficado en el archivo .bak
open (OUT, ">$filename.bak") || die $!;
while ($_ = <IN> ) {
## Si existe el texto lo reemplazo
if ($_ =~ /$oldtext/i) {
$_ =~ s/$oldtext/$newtext/gi;
}
print OUT "$_";
}
close (OUT);
close (IN);
# if ($filename =~ /\.wiki|\.awiki/)
## copio el contenido del archivo moficado .bak al archivo original
rename("$filename.bak","$filename") || die $!;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4