Por que o a2p (tradutor Awk para Perl) é instalado por padrão? Por que eu iria querer converter Awk para Perl?

Por que o a2p (tradutor Awk para Perl) é instalado por padrão? Por que eu iria querer converter Awk para Perl?

Estou surpreso ao ver o a2putilitário instalado por padrão na minha distribuição Linux.

a2pé um utilitário de linha de comando que converte umEstranhoprograma deentrada padrãopara umperlprograma que ele envia parasaída padrão.

Por que eu iria querer converter umEstranhoprograma para umPerlprograma quando eu tenho umEstranhointérprete instalado?

Por que é issoLinuxdistribuições incluem a2pem suas instalações padrão?

Responder1

Talvez você queira usar essas ferramentas para aumentar a eficiência dos perlscripts.

Você gostaria de fazer isso se tivesse um perlprograma maior e quisesse integrar a funcionalidade de um awkscript sem chamar um subprocesso. Você chamaria a2pe integraria o código gerado em um script Perl existente.

Existe um utilitário semelhante, find2perlque pega uma findlinha de comando e gera perlcódigo para fazer a mesma coisa, evitando a chamada a um findsubprocesso.

Estas são ferramentas de otimização para perlscripts.

Responder2

  1. Por que foi instalado por padrão? : Depende do desenvolvedor/mantenedor da distro que você está usando.

  2. Por que você precisariaa2p

Existe uma expressão estranha de colocar int() em torno de uma expressão de string para forçar a interpretação numérica, mesmo que o argumento seja sempre inteiro de qualquer maneira. Isso geralmente é desnecessário em perl, mas a2p não pode dizer se o argumento sempre será inteiro, então ele o deixa. Você pode querer removê-lo.

Perl diferencia a comparação numérica da comparação de strings. O Awk possui um operador para ambos que decide em tempo de execução qual comparação fazer. A2p não tenta fazer um trabalho completo de emulação do awk neste momento. Em vez disso, ele adivinha qual você deseja. Quase sempre está certo, mas pode ser falsificado. Todas essas suposições são marcadas com o comentário "#???". Você deve examiná-los e verificá-los. Você pode querer executar pelo menos uma vez com a opção -w para perl, que irá avisá-lo se você usar == onde deveria ter usado eq.

Para maiores informações :A2P

informação relacionada