Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: z_ane_666 en 22 Junio 2013, 08:08 am



Título: [PERL]script corrompe archivo
Publicado por: z_ane_666 en 22 Junio 2013, 08:08 am
Este script ,(que es parte de uno mas completo) lee un archivo y luego procede a almacenarlo en un archivo llamado "salida"

Código:
#!/usr/bin/perl -w
use File::Slurp;
my $file_contents = read_file($ARGV[0]);
open my $filehand, ">","salida";
print $filehand $file_contents;
close $filehand;

el problema es que el archivo final no es identico al original, se imprimen unos caracteres "0D" adicionales a lo largo del archivo salida, ¿que podria hacer?


Título: Re: [PERL]script corrompe archivo
Publicado por: explorer en 23 Junio 2013, 14:34 pm
Los caracteres '0D' podrían ser los caracteres de Retorno de carro, en el sistema operativo Windows, o Nueva línea, en los Mac OS.

El programa hace una copia literal del archivo, así que los caracteres '0D' deberías verles también en el archivo original.

Si solo quieres eliminar los caracteres '0D', lo que puedes hacer es filtrarles:

Código
  1. $file_contents =~ s/\0x0D//g;

Pero lo mejor sería saber el formato del archivo de origen, para hacer una conversión más correcta.

Saludos desde Perl en Español.