在Perl中使用带有严格pragma的全局变量



我想知道在使用严格的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;

相关内容

  • 没有找到相关文章