Estoy analizando un archivo grande en Perl línea por línea (terminado por \ n), pero cuando llego a cierta palabra clave, diga "OBJETIVO", necesito tomar todas las líneas entre OBJETIVO y la siguiente completamente vacía línea.¿Cómo puedo tomar varias líneas después de una línea coincidente en Perl?
Por lo tanto, dado un segmento de un archivo:
Line 1
Line 2
Línea 3
Línea 4 Target
Line 5 Grab esta línea
Line 6 Grab esta línea
\ n
Debería ser:
Línea 4 Objetivo
L ine 5 Tome esta línea
Línea 6 Tome esta línea
La razón por la que estoy teniendo problemas es que ya estoy revisando el archivo línea por línea; ¿Cómo cambio lo que delimito a mitad del proceso de análisis?
Ah, gracias, yo no estaba seguro de si mientras dentro de otro, mientras que estaba bien en Perl :) –
Dirk
@ Michael es simplemente otro readline call, entonces, sí, está bien. perldoc -f readline –
Si el identificador no apunta a un archivo real, sino más bien algo así como STDIN, puede hacer que el interno obtenga un eof y termine y luego el exterior mientras continúa leyendo hasta que * it * obtenga un eof. Pruébalo con: perl -wle'print "read a"; while (<>) {print "read b"; while (<>) {print "read b"} print "read a"} ' – ysth