(my)词法变量
Perl中的词法变量可以应用在任何的块和子例程中;
被my 修饰的词法变量对于所属块而言是私有的;
如果变量的定义未出现在任何块中,则该变量对于整个程序文件而言是私有的.
my操作符可以用来修饰标量变量:
如在test.pl中:
#!/user/bin/perl
use strict;
use warnings;
my $num1 = 5; #属于整个程序文件
.....
for(my $index = 0; $index < 1; $index++)
{
my $num1 = 10; #这个$num1是属于for块的私有变量
print "$num1/n"; # 输出10
}
print "$num1/n"; #输出5,
.....
当然,也可以用my来创建私有数组、列表或散列. 如:
my @pa;
my %hash;
注意:
1:相同的作用域范围内不能定义两个同名的词法变量;
2:my在同一语句中声明若干词法变量,不加括号只会声明一个词法变量. 如:
my $num1, $num2; #错误,未声明$num2
my ($num1, $num2); # 正确,两个都声明了
3:my操作符只能声明独立的变量, 不能用来声明数组或散列里的某一元素.如:
my %goodnews;
$goodnews{"news1"} = "WIN";
$goodnews{"news2"} = "Defeat";
my $goodnews{"news3" = "be loved"; #错误,编译会报错
(our)包全局变量
our声明的是"包全局变量",它的是依附在"包"上面的,它的存储位置是"包符号表".
包全局变量可以对属于同一包下面的所有程序文件是可见的.