2010-04-08 16 views
7

He leído en alguna parte sobre una característica específica que está presente en awk pero no en Perl. He fallado en localizarlo de nuevo.¿Qué puedo hacer con awk que no puedo hacer en Perl?

Apreciaría si alguien aquí puede señalarlo.

Esto podría ser una trivia inútil, pero todavía tengo curiosidad por saber.

+1

La pregunta sería más interesante en la forma: ¿Qué es posible? Hacer más fácil en awk. ;) – jm666

+0

@ jm666 no dude en editar – alvin

Respuesta

18

De perldoc perlvar:

Recuerde: el valor de $/ es una cadena, no una expresión regular. awk tiene que ser mejor para algo. :-)

+1

siempre puede hacer 'split/regex/=> do {local $ /; <>} 'Siempre que su archivo pueda caber en la memoria –

+0

Hace un momento escribí File :: Stream (en CPAN) para solucionar este" problema ". :) – tsee

+2

exactamente lo que estaba buscando. podré dormir bien a partir de ahora. :) – alvin

8

El awk a Perl Traductor man page desentierra una cosa que no puede hacer Perl:

  • Perl no intenta emular el comportamiento de awk en el que los elementos de matriz no existentes brotar a la existencia simplemente por referencia. (autovalidación de lvalue)

Pero, en general, Perl está completo, puede hacer todo lo que puede hacer. El hecho de que un awk a perl Traductor existe debería ser prueba suficiente :)

+0

hmmm, esto es interesante. – alvin

-2

subrutinas de expresión regular como

/regex/ { 
     awk code here 
} 

de coincidencia de patrones es un rasgo extraño de awk.

+0

No hablas en serio, ¿verdad? if (/ regex /) {código perl aquí} – Sean

+0

/$ regexp/y hacer {...}; – dsm

+0

'{código de perl aquí} if/regex /' –

Cuestiones relacionadas