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

1

Estou surpreso em ver o utilitário a2p instalado por padrão na minha distribuição Linux.

a2p é um utilitário de linha de comando que converte um programa Awk da entrada padrão para um programa perl que é enviado para saída padrão .

Por que eu iria querer converter um programa Awk para um programa Perl quando eu tivesse um interpretador Awk instalado?

Por que as distribuições Linux incluem a2p em suas instalações padrão?

    
por wefwefa3 07.11.2015 / 19:43

2 respostas

4

Você pode querer usar essas ferramentas para aumentar a eficiência dos scripts perl .

Você desejaria fazer isso se tivesse um programa perl maior e quisesse integrar a funcionalidade de um script awk sem chamar um subprocesso. Você chamaria a2p e integraria o código gerado em um script perl existente.

Há um utilitário semelhante, find2perl , que recebe uma linha de comando find e gera perl code para fazer a mesma coisa, evitando a chamada para um subprocesso find .

Estas são ferramentas de otimização para perl scripts.

    
por 07.11.2015 / 20:09
1
  1. Por que foi instalado por padrão? : Seu upto desenvolvedor / mantenedor da distro que você está usando.

  2. Por que você precisaria de a2p

There is an awk idiom of putting int() around a string expression to force numeric interpretation, even though the argument is always integer anyway. This is generally unneeded in perl, but a2p can't tell if the argument is always going to be integer, so it leaves it in. You may wish to remove it.

Perl differentiates numeric comparison from string comparison. Awk has one operator for both that decides at run time which comparison to do. A2p does not try to do a complete job of awk emulation at this point. Instead it guesses which one you want. It's almost always right, but it can be spoofed. All such guesses are marked with the comment "#??? ". You should go through and check them. You might want to run at least once with the -w switch to perl, which will warn you if you use == where you should have used eq.

Para mais informações: A2P

    
por 07.11.2015 / 20:10