perl 引用《大骆驼》学习总结
来源:互联网 发布:三国群英传7mac版资源 编辑:程序博客网 时间:2024/05/17 21:06
Perl引用学习
- 一个引用就是创建一个硬链接,一个引用只有在对它的所有引用都消失之后才会被摧毁
- 创建的引用只是一个标量,对这个标量进行解引用意味着我们使用这个引用访问引用物
- 创建引用的方法:
- 反斜杠: 对任何命名变量,数值,匿名标量值,对一列表用反斜杠,会得到一组引用
匿名数组组合器,使用方括号创建一个指向匿名数组的引用
- 匿名散列组合器,使用花括号创建一个指向匿名散列的引用
- 匿名子过程组合器,通过不带子过程名字的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";
@{$arrayref}[4..6] = qw/May June July/;
${$hashref}{"KEY"} = "VALUE";
@{$hashref}{"KEY", "KEY2"} = ("VAL1", "VAL2");
&{$coderef}(1,2,3); - 使用箭头操作符。解引用的类型是由右操作数决定的,也就是,由直接跟在箭头后面的东西决定。如果箭头后面的东西是一个方括弧或者花括弧,那么左操作数就分别当作一个指向一个数组或者散列的引用,由右边的操作数做下标定位。如果箭头后面的东西是一个左圆括弧,那么左操作数就当作一个指向一个子过程的引用看待,然后用你在圆括弧右边提供的参数进行调用。
- 把变量当做变量名来解析 $bar = $$scalarref;
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大骆驼读书笔记
- 大骆驼第一章 perl概述
- perl-小骆驼 总结(一)
- perl学习总结之引用
- perl-小骆驼 总结(二)
- perl-小骆驼 总结(三)
- Perl 小骆驼 学习笔记001
- 关于perl引用的总结
- Perl学习(十一)——大总结基本内容
- 大骆驼 第二章
- 小骆驼”的“正则表达式“部分学习总结:
- Perl基础学习总结
- Perl 学习总结
- perl DBI 学习总结
- Perl学习总结
- perl学习总结
- perl DBI 学习总结
- php+mysql分页公式
- 从老妈的老电脑看程序员的学习。
- Linux网络服务参数配置说明及实战
- 嵌入式linux学习步骤
- sql根据传入参数确定选择前几条数据的存储过程
- perl 引用《大骆驼》学习总结
- 苹果桌面图标效果
- stop and think
- Cakephp: findAll query return duplicated records
- 从零实现3D图像引擎:(6)向量函数库
- HoneyPot
- 新年快乐
- 拒绝屏幕失灵 电容屏保养须知
- 恶搞春晚