%3F%20%C2%BFPor%20qu%C3%A9%20querr%C3%ADa%20convertir%20Awk%20a%20Perl%3F%20.png)
Me sorprende ver la a2p
utilidad instalada de forma predeterminada en mi distribución de Linux.
a2p
es una utilidad de línea de comandos que convierte unawkprograma deentrada estándara unperlaprograma que envía asalida estándar.
¿Por qué querría alguna vez convertir unawkprograma a unperlaprograma cuando tengo unawk¿Intérprete instalado?
Por qué es esolinux¿Las distribuciones incluyen a2p
en sus instalaciones predeterminadas?
Respuesta1
Es posible que desee utilizar estas herramientas para aumentar la eficiencia de perl
los scripts.
Querría hacer esto si tuviera un perl
programa más grande y quisiera integrar la funcionalidad de un awk
script sin llamar a un subproceso. Llamaría a2p
e integraría el código generado en un script Perl existente.
Existe una utilidad similar, find2perl
que toma una find
línea de comando y genera perl
código para hacer lo mismo, evitando la llamada a un find
subproceso.
Estas son herramientas de optimización para perl
scripts.
Respuesta2
¿Por qué se instaló de forma predeterminada? : Depende del desarrollador/mantenedor de la distribución que estás utilizando.
¿Por qué necesitarías
a2p
Existe un modismo extraño que consiste en poner int() alrededor de una expresión de cadena para forzar la interpretación numérica, aunque el argumento siempre sea un número entero de todos modos. Esto generalmente no es necesario en Perl, pero a2p no puede determinar si el argumento siempre será un número entero, por lo que lo deja ahí. Es posible que desee eliminarlo.
Perl diferencia la comparación numérica de la comparación de cadenas. Awk tiene un operador para ambos que decide en tiempo de ejecución qué comparación hacer. A2p no intenta hacer un trabajo completo de emulación de awk en este momento. En lugar de eso, adivina cuál quieres. Casi siempre es correcto, pero se puede falsificar. Todas estas conjeturas están marcadas con el comentario "#???". Deberías revisarlos y revisarlos. Es posible que desees ejecutar al menos una vez con el modificador -w a perl, que te avisará si usas == donde deberías haber usado eq.
Para más información :A2P