Gre*_*con 10
由于特殊哈希,您不会陷入无限循环%INC:
%INC
散列%INC包含每个文件名的条目通过附带的do,require或者use运营商.键是您指定的文件名(模块名称转换为路径名),值是找到的文件的位置.该require运营商使用该哈希来确定特定文件是否已经被包含在内.
另外,请记住这use Module LIST相当于
BEGIN { require Module; Module->import( LIST ); }
Run Code Online (Sandbox Code Playgroud)
因此,当主程序使用时Module1,会发生以下顺序:
require Module1(来自包装main)require Module2(来自包装Module 1)require Module1(什么都没有因为Module1已经存在%INC)Module1->import(进入包装Module2)Module2->import(进入包装Module1)Module1->import(进入包装main)