%20%E3%81%8C%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%3F%20Awk%20%E3%82%92%20Perl%20%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E7%90%86%E7%94%B1%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F%20.png)
a2p
私の Linux ディストリビューションにこのユーティリティがデフォルトでインストールされているのを見て驚きました。
a2p
は、ぎこちないプログラムから標準入力にパール出力するプログラム標準出力。
なぜ私はぎこちないプログラムにパールプログラムがあるときはぎこちないインタープリタはインストールされていますか?
なぜリナックスディストリビューションa2p
のデフォルトのインストールには何が含まれていますか?
答え1
スクリプトの効率を高めるために、これらのツールを使用することをお勧めしますperl
。
より大きなプログラムがあり、サブプロセスを呼び出さずにスクリプトperl
の機能を統合したい場合は、これを実行するといいでしょう。生成されたコードを呼び出して、既存の Perl スクリプトに統合します。awk
a2p
同様のユーティリティがあり、find2perl
これはコマンド ラインを受け取りfind
、サブプロセスperl
の呼び出しを回避して同じことを実行するコードを生成しますfind
。
perl
これらはスクリプトの最適化ツールです。
答え2
なぜデフォルトでインストールされるのですか?: 使用しているディストリビューションの開発者/メンテナー次第です。
なぜ必要なのか
a2p
引数が常に整数であっても、文字列式の周囲に int() を配置して数値解釈を強制するという awk の慣用句があります。これは通常、perl では必要ありませんが、a2p は引数が常に整数になるかどうかを判断できないため、そのまま残します。削除することもできます。
Perl は数値比較と文字列比較を区別します。awk には両方に対して 1 つの演算子があり、実行時にどちらの比較を行うかを決定します。この時点では、A2p は awk エミュレーションの完全な作業を実行しようとはしません。代わりに、どちらが望ましいかを推測します。ほとんどの場合、正しいですが、偽装される可能性があります。このような推測はすべて、コメント "#??? " でマークされます。それらを調べて確認する必要があります。perl に -w スイッチを付けて少なくとも 1 回実行することをお勧めします。これにより、eq を使用するべき場所で == を使用すると警告が表示されます。
詳細については :A2P