Perl - Abrieno y escribiendo Archivos en Perl

 
Vista:

Abrieno y escribiendo Archivos en Perl

Publicado por Patricia (6 intervenciones) el 31/03/2002 21:09:36
Hola a todos:

estoy tratando de abrir un archivo (/httpd)y grabar. Con este codigo luego que se ejecuta la linea 5 la graba al principio del archivo, lo que yo quiero hacer es que la linea que comienza con $i ( poque esto esta adentro de un foreach) se sustituya por lo que se ingreso en la linea 5( se entiende?) no se si se puede hacer eso

1- open(HTTPD,"+</httpd");
2- a=<HTTPD>
3- $aux=`cat /httpd | grep ^$i`;
4- print ("Actualmente esta asi: $aux ");
5- $opc=<STDIN>
6- chop($opc);
7- print HTTPD "$opc\n";
8- close (HTTPD);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Abrieno y escribiendo Archivos en Perl

Publicado por Joel Rosental R. (22 intervenciones) el 31/03/2002 23:26:09
Hola Patricia

Bueno, veo algunos errores de sintaxis en tu código, y la verdad no entiendo muy bien que es lo que quieres hacer exactamente, si me puedes describir lo que quieres hacer exactamente y de una manera detallada, tal vez te pueda ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrieno y escribiendo Archivos en Perl

Publicado por Patricia (6 intervenciones) el 01/04/2002 07:36:33
Hola Joel yo ya te conozco por las respuestas en el foro de linux, desde ya muchas gracias.

te cuento, estoy intentando hacer un script para configurar el Apache,
despues de ver otras posibilidades la idea final es llenar un array con las
lineas que quiero configurar @lista(Timeout, KeepAlive...etc) luego tomo
cada elemento de ese array o sea Timeout, KeepAlive,...y consulto al usuario
si modifica esa configuracion o no, en caso de "Y" abro el archivo en modo
lectura y escritura (open(HTTPD,+</httpd)), luego selecciono las lineas del
archivo /httpd que comienzen con las $i o sea Timeoy, KeepAlive...etc.
($aux=`cat /httpd | grep ^$i`; )para que se impriman el la STDOUT y lo que
quiero hacer Y NO PUEDO es que por ejemplo si despliega Timeout 300 en la
linea siguiente (poque corregir en la misma linea es imposible) el usuario
ponga Timeout 500 por ejemplo esto se graba en $opc=<STDIN> y luego se lo
paso al archivo /httpd con la instruccion

print HTTPD "$opc\n"; #grava la opcion

close (HTTPD);

el tema es que este codigo me graba en la primera linea del /httpd y yo
QUIERO sustituir Timeout 300 por Timeout 500 y NO SE como se hace, porque
fijate que el orden en el que van las lineas de configuracion es importante,
yo no se si se pueden borrar lineas de un archivo, se me ocurre que si lo
abro con modo lectura escritura esto se podra hacer, pero no se como.

Me olvidava; me graba las modificaciones en la primera linea y pasa por
arriva, pore jemplo si modifico TimeOut y luego KeepAlive lo unico que graba
es el ultimo o sea KeepAlive
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar