6

モジュールのインポート中に、次のようなものと混乱しました。

use POSIX;

&

use POSIX();

&

use POSIX qw(WNOHANG);

これらの違いは何useですか?

4

1 に答える 1

13

ほとんどのモジュールは、Exporterモジュールを使用して、呼び出し先の名前空間で関数/変数/定数を公開します。

use POSIX;

これは、すべてのシンボルを POSIX から@EXPORT呼び出しモジュールの名前空間にインポートするだけです。

use POSIX();

これは、呼び出し元の名前空間にシンボルをインポートしません。ただし、モジュールはロードされます。つまりPOSIX::strftime(...)、 などの関数を呼び出すことができます。

use POSIX(WNOHANG)

これは、シンボルWNOHANGを呼び出しモジュールの名前空間にインポートするだけです。

@EXPORTおよび配列に慣れていない場合は、必ずExporter@EXPORT_OKのドキュメントを確認してください。Usingは、あるモジュールからモジュールの名前空間 (呼び出し側の名前空間) にシンボルをエクスポートする Perl の標準的な方法です。もそれを使用します。ExporterPOSIX

また、オブジェクト指向インターフェースで設計されたモジュールは、通常、シンボルをインポートする必要がないことにも言及する価値があります。

于 2013-10-05T09:31:11.327 に答える