gpt4 book ai didi

perl - 在 Perl 中加载具有 Namesace Overlap 的模块

转载 作者:行者123 更新时间:2023-12-04 17:00:28 25 4
gpt4 key购买 nike

快速摘要:
我的脚本更改了用于加载模块的符号链接(symbolic link),我需要从同一位置加载同一模块的两个不同版本,一次是在移动事物之前,一次是在事物移动之后。

详细总结:
我的脚本更改了我正在处理的程序的已安装版本。

在一个文件夹中,我有一个符号链接(symbolic link)( '/a/b/c/parallelogram' ),它指向我的软件的已安装分支( '/a/b/c/1_parallelogram' )。

我的脚本以“使用平行四边形::Const”开头。然后,我做了一些事情,包括让我的平行四边形符号链接(symbolic link)指向“/a/b/c/2_parallelogram”。

在这一点上,我有一个“需要 2_parallelogram/Config.pm”。 问题是 Config.pm 有一个“使用平行四边形::Const” . 我需要它来引用 2_parallelogram 中的 Const.pm,但由于我已经加载了 1_parallelogram/Const.pm,它使用该文件。

我无法更改 Config.pm 或 Const.pm 的内容。

有没有办法让我在本地限定这些“使用”语句的范围,或者覆盖加载的模块,或者卸载这些模块?

任何想法表示赞赏!

最佳答案

更改符号链接(symbolic link)后,请执行以下操作:

delete $INC{'parallelogram/Const.pm'};
delete $INC{'parallelogram/Config.pm'};
use Symbol 'delete_package';
delete_package('parallelogram::Const');
delete_package('parallelogram::Config');
require parallelogram::Config;

关于perl - 在 Perl 中加载具有 Namesace Overlap 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21731957/

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