モジュールの名前空間を自分自身につなぐ
import
は Perl の組み込み関数ではありません。
これはモジュール側に実装するメソッド(サブルーチン)にすぎません。
use
関数によってモジュールを読み込むと、
Perl はコンパイル時に、読み込むモジュールに import
関数が実装されていれば、それを呼び出します。
モジュールの import
が呼び出される際に、そのモジュールの名前に加えて、
use
関数に指定されたパラメータのリストが引き渡されます。
次のようにモジュールを読み込んだとしましょう。
use MyPackage qw(copy move);
そして、モジュール MyPackage
には次のような import
関数が実装されていたとします。
package MyPackage;
sub import {
for my $name (@_) {
print $name, "\n";
}
}
この場合、このモジュールが読み込まれた際に、次のように出力されます。
MyPackage
copy
move