なぜ a2p (Awk から Perl へのトランスレータ) がデフォルトでインストールされているのですか? Awk を Perl に変換する理由は何ですか?

なぜ a2p (Awk から Perl へのトランスレータ) がデフォルトでインストールされているのですか? Awk を Perl に変換する理由は何ですか?

a2p私の Linux ディストリビューションにこのユーティリティがデフォルトでインストールされているのを見て驚きました。

a2pは、ぎこちないプログラムから標準入力パール出力するプログラム標準出力

なぜ私はぎこちないプログラムにパールプログラムがあるときはぎこちないインタープリタはインストールされていますか?

なぜリナックスディストリビューションa2pのデフォルトのインストールには何が含まれていますか?

答え1

スクリプトの効率を高めるために、これらのツールを使用することをお勧めしますperl

より大きなプログラムがあり、サブプロセスを呼び出さずにスクリプトperlの機能を統合したい場合は、これを実行するといいでしょう。生成されたコードを呼び出して、既存の Perl スクリプトに統合します。awka2p

同様のユーティリティがあり、find2perlこれはコマンド ラインを受け取りfind、サブプロセスperlの呼び出しを回避して同じことを実行するコードを生成しますfind

perlこれらはスクリプトの最適化ツールです。

答え2

  1. なぜデフォルトでインストールされるのですか?: 使用しているディストリビューションの開発者/メンテナー次第です。

  2. なぜ必要なのかa2p

引数が常に整数であっても、文字列式の周囲に int() を配置して数値解釈を強制するという awk の慣用句があります。これは通常、perl では必要ありませんが、a2p は引数が常に整数になるかどうかを判断できないため、そのまま残します。削除することもできます。

Perl は数値比較と文字列比較を区別します。awk には両方に対して 1 つの演算子があり、実行時にどちらの比較を行うかを決定します。この時点では、A2p は awk エミュレーションの完全な作業を実行しようとはしません。代わりに、どちらが望ましいかを推測します。ほとんどの場合、正しいですが、偽装される可能性があります。このような推測はすべて、コメント "#??? " でマークされます。それらを調べて確認する必要があります。perl に -w スイッチを付けて少なくとも 1 回実行することをお勧めします。これにより、eq を使用するべき場所で == を使用すると警告が表示されます。

詳細については :A2P

関連情報