モジュールのインポート中に、次のようなものと混乱しました。
use POSIX;
&
use POSIX();
&
use POSIX qw(WNOHANG);
これらの違いは何use
ですか?
モジュールのインポート中に、次のようなものと混乱しました。
use POSIX;
&
use POSIX();
&
use POSIX qw(WNOHANG);
これらの違いは何use
ですか?
ほとんどのモジュールは、Exporter
モジュールを使用して、呼び出し先の名前空間で関数/変数/定数を公開します。
use POSIX;
これは、すべてのシンボルを POSIX から@EXPORT
呼び出しモジュールの名前空間にインポートするだけです。
use POSIX();
これは、呼び出し元の名前空間にシンボルをインポートしません。ただし、モジュールはロードされます。つまりPOSIX::strftime(...)
、 などの関数を呼び出すことができます。
use POSIX(WNOHANG)
これは、シンボルWNOHANG
を呼び出しモジュールの名前空間にインポートするだけです。
@EXPORT
および配列に慣れていない場合は、必ずExporter@EXPORT_OK
のドキュメントを確認してください。Usingは、あるモジュールからモジュールの名前空間 (呼び出し側の名前空間) にシンボルをエクスポートする Perl の標準的な方法です。もそれを使用します。Exporter
POSIX
また、オブジェクト指向インターフェースで設計されたモジュールは、通常、シンボルをインポートする必要がないことにも言及する価値があります。