我对另一个子程序无法访问的子程序的变量有疑问。
第一个子程序:
sub esr_info {
my $esr ;
my @vpls = () ;
my @sap = ();
my @spoke = () ;
&conf_esr($esr , 1);
}
第二 :
sub conf_esr {
my $e = @_[0] ;
some code (@vpls, @sap, @spoke);
}
第一个调用第二个,我需要第一个的变量是本地的,而不是整个代码的全局变量(用于线程目的)。第二个使用第一个的所有变量。我收到这些错误:
全局符号“$esr”在 w.pl 第 63 行需要明确的包名称(您是否忘记声明“my $esr”?)。
全局符号“@vpls”在 w.pl 第 74 行需要明确的包名称(您是否忘记声明“my @vpls”?)。
我的问题:一个子例程可以访问另一个变量而不将这些变量声明为全局变量吗?
非常感谢您阅读这篇文章。