gpt4 book ai didi

perl - 使用导入 2 个模块

转载 作者:行者123 更新时间:2023-12-01 16:48:56 27 4
gpt4 key购买 nike

我有 2 个 perl 模块,每个模块都使用第二个,即Module1.pm

使用模块 2

模块 2.pm

使用模块 1

当我使用 use 加载这两个模块时,后台发生了什么使用模块 1;使用模块 2;

谁能解释一下后台发生了什么以及为什么我不进入无限循环?

最佳答案

你不会因为特殊的散列%INC而陷入无限循环:

%INC
The hash %INC contains entries for each filename included via the do, require, or use operators. The key is the filename you specified (with module names converted to pathnames), and the value is the location of the file found. The require operator uses this hash to determine whether a particular file has already been included.

此外,请记住 use Module LIST 等同于

BEGIN { require Module; Module->import( LIST ); }

所以当主程序使用Module1时,会发生以下顺序:

  1. 需要 Module1(来自包 main)
  2. 需要 Module2(来自包 Module 1)
  3. require Module1(什么都不做,因为 Module1 已经在 %INC 中)
  4. Module1->import(进入包 Module2)
  5. Module2->import(进入包 Module1)
  6. Module1->import(进入包 main)

关于perl - 使用导入 2 个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2602635/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com