perl中的引用

来源:互联网 发布:网络滤波器厂家 编辑:程序博客网 时间:2024/05/22 03:34

引用的基本概念:

 


 

所谓引用,它只是指向一组数据的指针,并不包含实际数据的本身。该引用通常存放在另一个标量变量中。

若要创建对某个既定变量的引用,可以在该变量的前面加上一个反斜杠

例如:

    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";
        }

 

 

 

原创粉丝点击