別の場所で読み込んだモジュールが他でも無条件に使えるのはイヤなところである
まあPerlに限らずなんだけど。
Cacooで画像作ってみた。
ここでB.pmはCに関してまったく無関係のはずなんだけど、実際にはCパッケージの関数を使用できる。
どうも他人の庭の道具を無断使用しているみたいで気持ち悪い。
このへんも完全にスコープ切り分けできればよかったんだけど。
もちろん実際の実装では、B.pmもuse C;するんだろうけど、上記でも動いてしまう、というのがちょっとアレな感じ。
メリットとしては、他でも読み込んでいるモジュールは、それ以外で読み込まれていても再読み込みをしなくて済む、ってことだろうか。
つまりグローバル変数ならぬグローバル読み込みってところかな。
どこで何を使ってるかは、明確に記述しておかないといけないね。