Página 1 de 1

Problema borrado línea de archivo

NotaPublicado: 2009-03-03 08:43 @405
por rainier_cl
Hola, amigos:

He borrado por línea de comando una línea de un archivo haciendo...
Código: Seleccionar todo
perl -n -i.bak -e "/3202016/||print" C: \\CASEALERT2.txt

... hasta aquí todo OK.

... pero luego en un archivo.pm hago lo mismo y no me resulta el borrado del archivo (intentado de varias formas posibles)...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!C:\perl\bin\perl.exe -w
use CGI;

#`perl -n -i.bak -e "/3202016/||print" C:\\CASEALERT2.txt`;
#open(AN,`perl -n -i.bak -e "/3202016/||print" C:\\CASEALERT2.txt`);
#close(AN);
#@output = `perl -n -i.bak -e "/3202016/||print" C:\\CASEALERT2.txt`;

system(`perl -n -i.bak -e "/3202016/||print" C:\\CASEALERT2.txt`);

print "Content-type: text/html\n\n";
print "<center><h1>HOLA MUNDO!</h1></center>\n";
exit(1);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


... el código me imprime HOLA MUNDO, pero no me borra la línea del archivo.
¿Quién me puede dar una idea de qué puede ser el error ..!!??

Agradeciendo de antemano...

Saludos

NotaPublicado: 2009-03-03 08:52 @411
por explorer
Bienvenido a los foros de Perl en Español, rainier_cl.

Primero, decir que llamar a perl dentro de Perl... pues es bastante feo. Legal, pero feo :)

En cuanto al error, yo probaría con

Código: Seleccionar todo
system('perl -n -i.bak -e "/3202016/ || print" C:/CASEALERT2.txt');

Fíjate que he cambiado las comillas simples y el slash del camino al fichero.

Otra cosa... si usas el módulo CGI, las últimas líneas
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "Content-type: text/html\n\n";
print "<center><h1>HOLA MUNDO!</h1></center>\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

las puedes sustituir por:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $cgi = CGI->new();
print
    $cgi->header,
    $cgi->start_html(),
    $cgi->h1({align=>'center'}, 'HOLA MUNDO!'),
    $cgi->end_html()
    ;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

que creo que queda más explícito, más claro.