引用的基本概念:
所谓引用,它只是指向一组数据的指针,并不包含实际数据的本身。该引用通常存放在另一个标量变量中。
若要创建对某个既定变量的引用,可以在该变量的前面加上一个反斜杠
例如:
my $test="it is a reference";
my $ref=/$test;
如果需要输出引用,则需要$$,注意如果直接$ref,输出的实际相当于c语言中的地址:
print $$ref."---------";
可以通过直接修改$$ref的值来修改$test,即引用所指向的标量。
对数组创建引用:
对数组创建引用如下:
my @arr=('2','34','535d','345');
my $refArr=/@arr;
print $$refArr[0]."/n";
my @test=@$refArr[2,3];
print scalar(@test)."length...";
其中 ${$refArr}[0]于$$refArr[0]等价
如果需要输出所有的值则可以
foreach $element(@{$refArr})
{
print "element".$element."/n";
}
对hash结构的引用:
my $herf =/%hashtest;
$ $ h r e f { k e y } 访问% h a s h中的一个关键字,也可以是$ { $ h r e f } { k e y }
% $ h r e f 访问整个哈希结构,也可以是% { $ h r e f }
匿名存储:
%hash={'phone'=>'bell'};花括号( { })将哈希结构括起来,返回对它的引用,但实际上并没有创建新的变量。
perl中的列表:
my @list_of_lists=([qw(er 34 sdd)],[qw(a d g c)]);
print "array lengh".scalar(@list_of_lists)."/n";# 2
print "inner array length".$#list_of_lists."/n";#1,下标表示法
print "get the inner length".scalar(@{$list_of_lists[1]})."/n";#4
#遍历列表
foreach my $outer(@list_of_lists)
{
foreach my $inner(@{$outer})
{
print "$inner----";
}
print "/n";
}