Sto analizzando un file di grandi dimensioni in Perl line-by-line (terminato da \ n), ma quando raggiungo una determinata parola chiave, ad esempio "TARGET", devo prendere tutte le linee tra TARGET e il prossimo completamente vuoto linea.Come posso prendere più linee dopo una linea corrispondente in Perl?
Quindi, dato un segmento di un file:
Linea 1
Linea 2
Linea 3
Linea 4 Obiettivo
Linea 5 Grab questa linea
Linea 6 Grab questa linea
\ n
Deve diventare:
Riga 4 Destinazione
L ine 5 Prendi questa riga
Linea 6 Prendi questa riga
Il motivo per cui ho problemi è che sto già esaminando il file riga per riga; come posso modificare ciò che delimino a metà del processo di analisi?
Ah, grazie, io non ero sicuro se mentre all'interno di un altro mentre era ok in perl :) –
Dirk
@ Michael è solo un altro chiamata readline, quindi, sì, è OK. perldoc -f readline –
Se l'handle non punta a un file reale, ma piuttosto a qualcosa come STDIN, puoi avere l'interno mentre ottieni un eof e termina e poi l'esterno mentre continui a leggere fino a * it * ottiene un eof. Provalo con: perl -wle'print "leggi un"; while (<>) {stampa "leggi b"; while (<>) {print "read b"} stampa "read a"} ' – ysth