2010-04-08 19 views
7

Avevo letto da qualche parte su una funzione specifica presente in awk ma non in Perl. Ho fallito nel localizzarlo di nuovo.Cosa posso fare usando awk che non riesco a fare in Perl?

Gradirei se qualcuno qui potesse indicarlo.

Questa potrebbe essere una banalità inutile, ma sono ancora curioso di sapere.

+1

La domanda sarebbe più interessante nella forma: ciò che è possibile fare più facile in awk. ;) – jm666

+0

@ jm666 sentiti libero di modificare – alvin

risposta

18

Da perldoc perlvar:

Ricordate: il valore di $/ è una stringa, non è un'espressione regolare. awk deve essere migliore per qualcosa. :-)

+1

puoi sempre fare 'split/regex/=> do {local $ /; <>} 'finché il tuo file può essere inserito nella memoria –

+0

Nel giorno in cui ho scritto File :: Stream (su CPAN) per risolvere questo" problema ". :) – tsee

+2

esattamente la cosa che stavo cercando. Sarò in grado di dormire sonoramente d'ora in poi. :) – alvin

8

L'awk a Perl traduttore man page scava una cosa che Perl non può fare:

  • Perl non tenta di emulare il comportamento di awk in cui gli elementi di matrice inesistente sorgono semplicemente facendo riferimento. (autovivification lvalue)

Ma in generale, Perl è completo, può fare tutto ciò che può fare awk. Il fatto che un awk a perl traduttore esiste dovrebbe essere una prova sufficiente :)

+0

hmmm, questo è interessante. – alvin

-2

regolari subroutine di espressione come

/regex/ { 
     awk code here 
} 

per il pattern matching è una caratteristica che mi manca da awk.

+0

Non sei serio, giusto? se (/ regex /) {codice perl qui} – Sean

+0

/$ regexp/e do {...}; – dsm

+0

'{codice perl qui} if/regex /' –

Problemi correlati