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

perl 引用《大骆驼》学习总结,第1张

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

 

Perl引用学习

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

匿名数组组合器,使用方括号创建一个指向匿名数组的引用

匿名散列组合器,使用花括号创建一个指向匿名散列的引用 匿名子过程组合器,通过不带子过程名字的sub创建一个匿名子过程

对象是一个赐过福的引用

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

perl引用的高级技术 当编译器看到双引号字串里的 @{...} 的时候,它就会被当作一个返回一个引用的块分析

print "We need @{ [$n + 5] } Widgets!/n";

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

嵌套子过程 TIE::RefHasn 可以将引用作为键值,其他的不行

循环引用导致内存释放有问题的

使用引用的方法: 把变量当做变量名来解析   $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}  区别,后个正确。 把一个block{}当做变量名来使用。                                                                                  $bar = ${$scalarref};
   push(@{$arrayref},$filename);
   ${$arrayref}[0] = "January";
  
@H_301_22@@{$arrayref}[4..6] = qw/May June July/;
   ${$hashref}{"KEY"} = "VALUE";
   @{$hashref}{"KEY","KEY2"} = ("VAL1","VAL2");
   &{$coderef}(1,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

总结

以上是内存溢出为你收集整理的perl 引用《大骆驼》学习总结全部内容,希望文章能够帮你解决perl 引用《大骆驼》学习总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1289222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存