小编Bri*_*ips的帖子

Perl:从另一个文件访问"我的"变量

我们在工作时使用Perl脚本来执行维护.我需要修改它来处理更多任务.问题是脚本被编译并且源很久以前就丢失了.

我尝试使用B :: Deparse来重新创建文件,但Deparse并不完美,输出被破坏(非常大~5000行的去除代码).

读完解码后的代码后,我发现需要修改一个函数.编译后的脚本加载了一个纯文本脚本模块,因此我更改了模块以覆盖该函数并执行我需要它执行的任务.现在的问题是我无法访问主脚本"我的"变量.

这是一个例子:

# main.pl

my $a = 1;

sub call_me {
    print "unmodified";
}

use MOD;

call_me;


MOD.pm
package MOD;

main::{'call_me'} = sub {
    print "\$main::a = $main::a\n";
}
Run Code Online (Sandbox Code Playgroud)

结果是:" $main::a ="而不是获得真正的价值.

提前致谢.

perl

5
推荐指数
1
解决办法
1838
查看次数

标签 统计

perl ×1