perl 引用《大骆驼》学习总结

 

Perl引用学习

  1. 一个引用就是创建一个硬链接,一个引用只有在对它的所有引用都消失之后才会被摧毁
  2. 创建的引用只是一个标量,对这个标量进行解引用意味着我们使用这个引用访问引用物
  3. 创建引用的方法:
    1. 反斜杠: 对任何命名变量,数值,匿名标量值,对一列表用反斜杠,会得到一组引用
    2. 匿名数组组合器,使用方括号创建一个指向匿名数组的引用

    3. 匿名散列组合器,使用花括号创建一个指向匿名散列的引用
    4. 匿名子过程组合器,通过不带子过程名字的sub创建一个匿名子过程
    5. 对象是一个赐过福的引用

    6. 过引用同名类型团来创建指向文件句柄或者目录句柄

  4. perl引用的高级技术
    1. 当编译器看到双引号字串里的 @{...} 的时候,它就会被当作一个返回一个引用的块分析
    2. print "We need @{ [$n + 5] } widgets!/n";

    3. 用use strict 'refs';来拒绝符号引用

    4. 嵌套子过程
    5. Tie::RefHasn 可以将引用作为键值,其他的不行
    6. 循环引用导致内存释放有问题的

  5. 使用引用的方法:
    1. 把变量当做变量名来解析   $bar =   $$scalarref;
         push(@$arrayref, $filename);
         $$arrarref[0]   = "January";                   # 设置 @$arrayref 的第一个元素
         @$arrayref[4..6]=qw/May June July/;   # 设置若干个 @$arrayref 的元素

         %$hashref = (KEY => "RING", BIRD => "SING");   # 初始化整个散列
         $$hashref{KEY} = "VALUE";                     # 设置一个键字/数值对
         @$hashref{"KEY1", "KEY2"} = {"VAL1", "VAL2"};         # 再设置两对

         &$coderef(1,2,3);

         print $handleref "output/n";                                                                        
      ${$hashref{KEY}} 和${$hashref}{KEY},$$hashref{KEY}  区别,后个正确。
    2. 把一个block{}当做变量名来使用。                                                                                  $bar = ${$scalarref};
         push(@{$arrayref}, $filename);
         ${$arrayref}[0] = "January";
        
      @{$arrayref}[4..6] = qw/May June July/;
         ${$hashref}{"KEY"} = "VALUE";
         @{$hashref}{"KEY", "KEY2"} = ("VAL1", "VAL2");
         &{$coderef}(1,2,3);
    3. 使用箭头操作符。解引用的类型是由右操作数决定的,也就是,由直接跟在箭头后面的东西决定。如果箭头后面的东西是一个方括弧或者花括弧,那么左操作数就分别当作一个指向一个数组或者散列的引用,由右边的操作数做下标定位。如果箭头后面的东西是一个左圆括弧,那么左操作数就当作一个指向一个子过程的引用看待,然后用你在圆括弧右边提供的参数进行调用。

arrayref->[2]  = "Dorian";        #3
$hashref->{KEY} = "F#major";         #3
$coderef->(Presto => 192);          #3                                                                                在方括弧或花括弧之间,或者在一个闭方括弧或花括弧与圆括弧之间的箭头是可选的。后者表示间接的函数调用。  

 

 

 

试手程序如下:

 

 

运行结果如下:

D:/王连臣/学习记录/201102>"Perl Ref Show.PL"

访问第一个匿名散列:

ARRAY(0x3f4c28)

ARRAY(0x3f4c28)

htmlARRAY(0x3f4c28)jsARRAY(0x3f4e80)打印第一个匿名数组:

100200

打印第一个匿名数组的第二个元素:

200

200

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目录 第一章 Perl概述............................................................................................................................10 1.1 从头开始..........................................................................................................................10 1.2 自然语言与人工语言......................................................................................................11 1.2.1 变量语法...............................................................................................................12 1.2.2 单数变量...............................................................................................................13 1.2.3 复数变量...............................................................................................................14 1.2.4 复杂数据结构.......................................................................................................17 1.2.5 简单数据结构.......................................................................................................19 1.2.6 动词.......................................................................................................................21 1.3 一个平均值例子..............................................................................................................22 1.3.1 如何运行...............................................................................................................24 1.4 文件句柄..........................................................................................................................26 1.5 操作符..............................................................................................................................28 1.5.1 双目算术操作符...................................................................................................28 1.5.2 字符串操作符.......................................................................................................28 1.5.3 赋值操作符...........................................................................................................29
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值