Perl é sempre uma ferramenta melhor que o awk para processamento de texto [closed]

1

Esta pergunta foi inspirada por uma discussão sobre stackoverflow - veja em particular o tópico do comentário em resposta de Ed Morton .

Eu percebi que este era o site onde eu poderia obter uma resposta definitiva:

In what situations would you recommend using Perl rather than awk for complex text (file) processing tasks?

Estou procurando especificamente exemplos onde o Perl

  1. Faz algo possível que não é possível com o awk
  2. Torna a implementação de uma operação específica mais eficiente (mais rápida)
  3. Resulta em scripts mais legíveis / fáceis de manter
Reconheço que isso se arrisca a ser uma questão de opinião / discussão / religião, mas espero que os três critérios acima permitam uma comparação objetiva dos benefícios dessas duas ferramentas. Também reconheço que estou chegando a essa questão como uma pessoa com considerável experiência com nix, mas sem treinamento formal; Eu "aprendo as coisas como preciso delas", e estou imaginando se há uma razão para eu cavar e aprender Perl.

update com base em alguns comentários, gostaria de expandir a pergunta:

Are there particular Perl libraries that you use frequently, and that make you reach for Perl over awk for a class of problems?

    
por Floris 10.02.2014 / 18:11

1 resposta

3

O Perl (Lister Rubbish Patologicamente Eclético) é o software mais novo e tentou fornecer recursos de sed , grep e awk . Alguns sistemas ainda não usam perl, então você ainda precisa usar awk .

Se você tiver pequenos scripts curtos, então awk é mais rápido porque não usa muita memória RAM. Mas esta questão não é importante hoje em dia.

Perl tem a vantagem de usar uma biblioteca enorme, por exemplo bignum:

perl -Mbignum=p,-50 -e 'print 7 / 17 * 2 ** 1024'
74022658494330655024147860797195136090151993250565247519682704773906208395466727932632852195642113248713093779803824795490433138400407947242956458140922662778116418363136978425944182630002816083132493908286100432062606400696408888454667905350718062803228883801119937832891791040171399808266545264132627555599.49778888545891662481444755946205525353595725152256

A legibilidade do código é sempre um atributo do escritor. Você pode escrever um código bem legível que não depende do idioma que você usa.

    
por 10.02.2014 / 18:29

Tags