当我在Perl中声明/创建变量时,默认情况下是本地变量还是全局变量?

use*_*308 0 perl scope

在这个例子中:

#!/usr/bin/perl

$a = 4; # Is $a a local variable or a global variable?
print $a, "\n";
Run Code Online (Sandbox Code Playgroud)

$ a有什么样的范围?

TLP*_*TLP 7

该特定变量$a是与之一起使用的预定义变量sort.但是,如果您使用$x它将被考虑

$main::x;
Run Code Online (Sandbox Code Playgroud)

它是包"main"中的全局​​变量,它是主脚本.

请注意,如果您使用use strict,您始终应该使用perl将强制您在使用变量时具体.在这种情况下,你不能只使用

$x = 4;
Run Code Online (Sandbox Code Playgroud)

因为它会产生致命异常Global symbol "$x" requires explicit package name at ...通常你会使用myour声明变量:

my $x = 4;
Run Code Online (Sandbox Code Playgroud)

但是$main::x,只要指定完整的变量名,也可以使用.