¿Por qué está instalado de forma predeterminada a2p (traductor de Awk a Perl)? ¿Por qué querría convertir Awk a Perl?

¿Por qué está instalado de forma predeterminada a2p (traductor de Awk a Perl)? ¿Por qué querría convertir Awk a Perl?

Me sorprende ver la a2putilidad instalada de forma predeterminada en mi distribución de Linux.

a2pes 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 a2pen sus instalaciones predeterminadas?

Respuesta1

Es posible que desee utilizar estas herramientas para aumentar la eficiencia de perllos scripts.

Querría hacer esto si tuviera un perlprograma más grande y quisiera integrar la funcionalidad de un awkscript sin llamar a un subproceso. Llamaría a2pe integraría el código generado en un script Perl existente.

Existe una utilidad similar, find2perlque toma una findlínea de comando y genera perlcódigo para hacer lo mismo, evitando la llamada a un findsubproceso.

Estas son herramientas de optimización para perlscripts.

Respuesta2

  1. ¿Por qué se instaló de forma predeterminada? : Depende del desarrollador/mantenedor de la distribución que estás utilizando.

  2. ¿Por qué necesitaríasa2p

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

información relacionada