続・同じモジュールを複数回useしたときの挙動とかシンボルテーブルとか

道家からコメント拝啓。毎度感謝です。

useの処理

BEGIN { require Module; import Module LIST; }

perldoc -f require

Note that the file will not be included twice under the same specified name.

同じ名前のブツは2回は展開されませんよ的。


複数回useしたらuseの処理がちゃんと複数回走る。
require Moduleは上記の通り、2回目以降は働かない模様。
importは普通に走る。
以上。何も問題なし。

で、何でそんなネタを調べていたのか

オレオレActiveRecordが、同じモジュールを複数回useするというか、循環参照する作りになってしまっていて動かないとき、神にその部分を遅延評価するようにして動くように修正してもらったのだけど、
「何で2回useして問題にならないんだろう」と疑問に思ったのがきっかけ。

その後は
特定のモジュールだけ書き換えたときにそのモジュールだけ再読み込みしたいときのあれこれ
とか
catalystのserver.plのリスタートの仕組みが想像と違ってた
とかを話してますた。