%20standardm%C3%A4%C3%9Fig%20installiert%3F%20Warum%20sollte%20ich%20Awk%20in%20Perl%20konvertieren%20wollen%3F%20.png)
Ich bin überrascht, dass das a2p
Dienstprogramm in meiner Linux-Distribution standardmäßig installiert ist.
a2p
ist 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 a2p
in ihren Standardinstallationen enthalten?
Antwort1
Möglicherweise möchten Sie diese Tools verwenden, um die Effizienz von perl
Skripten zu steigern.
Dies wäre beispielsweise sinnvoll, wenn Sie ein größeres perl
Programm hätten und die Funktionalität eines awk
Skripts integrieren möchten, ohne einen Unterprozess aufzurufen. Sie würden a2p
den generierten Code aufrufen und in ein vorhandenes Perl-Skript integrieren.
Es gibt ein ähnliches Dienstprogramm, das eine Befehlszeile find2perl
verwendet und Code generiert, der dasselbe tut und so den Aufruf eines Unterprozesses vermeidet.find
perl
find
Dies sind Optimierungstools für perl
Skripte.
Antwort2
Warum wurde es standardmäßig installiert?: Es liegt am Entwickler/Betreuer der von Ihnen verwendeten Distribution.
Warum brauchen Sie
a2p
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