7

Perl では、Perl ビルトインを使用するか、シェル コマンドを呼び出す system() を使用して目的を達成できます。問題は、Perl の初心者である私にとって、Linux コマンドに相当する Perl を見つけるのが難しい場合があることです。
たとえば、次のようにします。

cat file1 file2 | sort -u > file3

Perl 関数だけを使用してより Perl らしくしたいのですが、この場合に system() を使用しないようにする方法を簡単に見つけることができません。

system() 呼び出しを使用するよりも、Perl ライブラリ関数を使用する利点はありますか? どちらがより良い方法ですか?

4

5 に答える 5

11

多くの場合、ライブラリ関数を使用する利点は、問題が発生したときに意味のあるエラー メッセージを表示できることです。

短期間のスクリプトの場合、または開発リソースが貴重な場合は、代わりに system を使用することが理にかなっています。

于 2013-11-12T07:07:42.617 に答える
4

perl ライブラリを使用します。別のプロセスを生成する際のプロセッサの労力を節約します。また、問題が発生したときのより良い兆候を得ることができます。

于 2013-11-12T07:44:40.957 に答える
1

もちろん、 mpapecで指摘されているように、Perl スクリプト バージョンを使用できます。しかし、 Asif Idrisによって指摘されたバージョンの使用には、いくつsystemかの利点があります。たとえば、大量のデータを並べ替える必要がある場合、システム コマンドを使用すると、はるかに手間がかかりません。perl を使用して数 GB をソートするのは PITA ですが、システムコマンドにとっては大したことではなく、すべてのコアとはるかに少ないメモリを使用することさえあります。opensortsort

于 2013-11-12T09:06:45.387 に答える