我想知道在使用严格的pragma时是否可以使用一些全局变量。
例如,我尝试过这样做:
#!/usr/bin/perl -w
use strict;
sub print_global{
print "your global is: $globaln";
}
$global = 1234; #or even my $global = 1234;
print_global;
但正如你所注意到的,它不起作用。
当使用严格的pragma时,有什么方法可以定义全局变量吗?(当然,如果有的话)
在使用之前只需声明全局:
our $global;
与my
不同,这不会创建新的变量,而是使该变量在此范围内可用。所以你可以安全地拥有像这样的代码
sub print_global{
our $global; # does not create a new variable like `my` would
print "your global is: $globaln";
}
our $global = 1234;
print_global;
在函数上方声明my $global;
,它将与use strict;
一起工作。
use strict;
告诉Perl您希望强制声明变量,但您没有这样做。请在适当的地方添加声明。
#!/usr/bin/perl -w
use strict;
my $global; # <----
sub print_global{
print "your global is: $globaln";
}
$global = 1234;
print_global;