Warum ist a2p (Awk-Perl-Übersetzer) standardmäßig installiert? Warum sollte ich Awk in Perl konvertieren wollen?

Warum ist a2p (Awk-Perl-Übersetzer) standardmäßig installiert? Warum sollte ich Awk in Perl konvertieren wollen?

Ich bin überrascht, dass das a2pDienstprogramm in meiner Linux-Distribution standardmäßig installiert ist.

a2pist ein Kommandozeilenprogramm, das eineOhhhhProgramm vonStandardeingabezu einemperlProgramm, das es ausgibt anStandardausgabe.

Warum sollte ich jemals einOhhhhProgramm zu einemPerlProgramm, wenn ich einOhhhhInterpreter installiert?

Warum ist es dasLinuxDistributionen sind a2pin ihren Standardinstallationen enthalten?

Antwort1

Möglicherweise möchten Sie diese Tools verwenden, um die Effizienz von perlSkripten zu steigern.

Dies wäre beispielsweise sinnvoll, wenn Sie ein größeres perlProgramm hätten und die Funktionalität eines awkSkripts integrieren möchten, ohne einen Unterprozess aufzurufen. Sie würden a2pden generierten Code aufrufen und in ein vorhandenes Perl-Skript integrieren.

Es gibt ein ähnliches Dienstprogramm, das eine Befehlszeile find2perlverwendet und Code generiert, der dasselbe tut und so den Aufruf eines Unterprozesses vermeidet.findperlfind

Dies sind Optimierungstools für perlSkripte.

Antwort2

  1. Warum wurde es standardmäßig installiert?: Es liegt am Entwickler/Betreuer der von Ihnen verwendeten Distribution.

  2. Warum brauchen Siea2p

Es gibt ein awk-Idiom, bei dem int() um einen String-Ausdruck herum gesetzt wird, um eine numerische Interpretation zu erzwingen, obwohl das Argument ohnehin immer eine Ganzzahl ist. Dies ist in Perl im Allgemeinen nicht erforderlich, aber a2p kann nicht erkennen, ob das Argument immer eine Ganzzahl sein wird, und lässt es daher drin. Sie möchten es vielleicht entfernen.

Perl unterscheidet zwischen numerischen und String-Vergleichen. Awk hat einen Operator für beide, der zur Laufzeit entscheidet, welcher Vergleich durchgeführt wird. A2p versucht an dieser Stelle nicht, eine vollständige Awk-Emulation durchzuführen. Stattdessen errät es, welchen Vergleich Sie wollen. Es liegt fast immer richtig, kann aber gefälscht werden. Alle derartigen Vermutungen sind mit dem Kommentar „#??? “ gekennzeichnet. Sie sollten sie durchgehen und überprüfen. Sie sollten Perl mindestens einmal mit dem Schalter -w ausführen, der Sie warnt, wenn Sie == verwenden, wo Sie eq hätten verwenden sollen.

Für mehr Informationen :A2P

verwandte Informationen