0

我想知道在使用严格的编译指示时是否可以使用一些全局变量。

例如,我尝试过这样做:

#!/usr/bin/perl -w

use strict;

sub print_global{
     print "your global is: $global\n";
}

$global = 1234;     #or even my $global = 1234;

print_global;

但是你可以注意到它不起作用。

使用严格的杂注时有什么方法可以定义全局变量吗?(如果有的话,当然)

4

3 回答 3

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;
于 2013-07-10T10:58:57.750 回答
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;
于 2013-07-10T11:32:51.287 回答
1

在您的函数上方声明my $global;,它将与use strict;.

于 2013-07-10T10:58:35.987 回答