我想知道在使用严格编译指示时是否可以使用一些全局变量。
例如,我试过这样做:
#!/usr/bin/perl -w
use strict;
sub print_global{
print "your global is: $global\n";
}
$global = 1234; #or even my $global = 1234;
print_global;
但是你可以注意到它不起作用。
使用strict pragma时有没有办法定义全局变量? (当然,如果有的话)
答案 0 :(得分:6)
在使用之前声明全局:
our $global;
与my
不同,这不会创建新变量,而是使变量在此范围内可用。所以你可以安全地拥有像
sub print_global{
our $global; # does not create a new variable like `my` would
print "your global is: $global\n";
}
our $global = 1234;
print_global;
答案 1 :(得分:1)
在您的函数上方声明my $global;
,它将与use strict;
一起使用。
答案 2 :(得分:1)
use strict;
告诉Perl您希望被迫声明您的变量,但您没有这样做。在适当的地方添加声明。
#!/usr/bin/perl -w
use strict;
my $global; # <----
sub print_global{
print "your global is: $global\n";
}
$global = 1234;
print_global;