我正在尝试编写一个perl脚本,该脚本调用在其他地方(由其他人)编写的函数,该函数操作我脚本范围内的一些变量.假设脚本是main.pl并且函数在那里funcs.pm.我main.pl看起来像这样:
use warnings;
use strict;
package plshelp;
use funcs;
my $var = 3;
print "$var\n"; # <--- prints 3
{ # New scope somehow prevents visibility of $pointer outside
local our $pointer = \$var;
change();
}
print "$var\n"; # <--- Ideally should print whatever funcs.pm wanted
Run Code Online (Sandbox Code Playgroud)
出于某种原因,使用会local our $pointer;阻止$pointer范围外的可见性.但是如果我只是使用our $pointer;,变量可以在main.pl使用范围之外看到$plshelp::pointer(但不是在funcs.pm,所以无论如何它都是无用的).作为附注,有人可以解释一下吗?
funcs.pm 看起来像这样:
use warnings;
use strict;
package plshelp;
sub change
{
${$pointer} …Run Code Online (Sandbox Code Playgroud)