假设有两个相互使用的模块:
package a;
use b;
sub p {}
1;
package b;
use a;
1;
Run Code Online (Sandbox Code Playgroud)
我认为编写如上所述的代码是系统错误的,因为这两个模块会无休止地将彼此的代码复制到自己,但我可以成功运行以下代码,这让我非常惊讶.你们中有谁能向我解释这一切吗?
#! /usr/bin/perl
use a;
a->p();
Run Code Online (Sandbox Code Playgroud)
Dav*_*man 15
因为这两个模块会无休止地将彼此的代码复制到自己身上
不,他们不会,因为你用代码证明了工作让你感到惊讶.Perl中保持在记录%INC
其中的模块已经加载use
或require
并不会尝试重新加载他们,如果他们得到use
d或require
D组合键.
归档时间: |
|
查看次数: |
428 次 |
最近记录: |