我正在尝试创建一个像这样的模块
package MyModule;
use strict;
use Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = qw(func1);
sub func1 {
my x = shift;
print x;
func2();
}
sub func2 {
print x;
}
我从一个 perl 脚本中调用模块的 func1 并传递一个变量 x。我如何使该变量对两个子程序都可见或说出该模块内的所有函数。 请帮忙。
最佳答案
使用 my
或 our
在文件范围内声明 $x
:
my $x;
# subroutines definition
File 具有最大的词法作用域,因此该变量对其余代码可见(除非您使用 my
在某个内部作用域中重新声明它)。
关于perl - 如何将变量保持在所有子例程的范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079148/