PERL 引用与解引用
来源:互联网 发布:搜狗浏览器打开淘宝卡 编辑:程序博客网 时间:2024/06/01 09:29
PERL 语言中的引用类似于C/C++中的指针。 标量(scalar),列表(list),哈希(hash),函数(sub),文件句柄(handle)都可以使用引用来标记。引用本身又是一个标量。
$scal_ref = \$scal; 标量引用
$arr_ref = \@arr; 列表引用
$hash_ref = \%hashe; 哈希引用
首先 为什么需要引用,或者说什么时候要用引用。
(1),列表和哈希的元素只能接受标量,如果使用列表或者哈希构造多层级复杂数据结构,则列表或者哈希的元素只能存储哈希或者列表的引用,如开始所说引用本身是一个标量。
(2), 函数的参数只能传递标量。 这一点跟C++也是类似,C++的数组作为参数,实际上传递的是指针。
列表和哈希的元素只能是标量。也就是哈希和列表的引用。比如下面的例子。
@array_e = (0,1,2);
$hash_e = {};
$arr_ref = \@array_e;
$hash_e{'a'} = @array_e; #运行错误。
$hash_e{'a'} = $arr_ref; #运行正常,列表也具有同样限制,即哈希或者列表的元素只能是标量。
$scal = 10;
@arr = (1,2,3);
%hashe = ("aa"=>"aa", "bb"=>"bb","cc"=>"cc");
下面我们主要讨论标量,列表,和哈希的解引用的方法。
第一种解引用解引用的方法:用引用替代原来的变量名。如果原来的标量名为scal 则用$scal_ref 替代原来的变量名。
$scal_ref = \$scal;
$arr_ref = \@arr;
$hash_ref = \%hashe;
print $$scal_ref;
print @$arr_ref;
print %$hash_ref;
print $$arr_ref[0];
print $$hash_ref{"aa"};
第二种解引用解引用的方法:用{引用}替代原来的变量名。如果原来的标量名为scal 则用{$scal_ref }替代原来的变量名。
print ${$scal_ref};
print @{$arr_ref};
print %{$hash_ref};
print ${$arr_ref[0]};
print ${$hash_ref[1]};
print $arr_ref->[0]
print $hash_ref->{"aa"};
- PERL 引用与解引用
- perl引用
- Perl引用
- perl 引用
- perl 引用
- perl 引用
- Perl引用,解引用的对比总结(转)
- perl学习笔记-解引用小结
- Perl中的直接引用
- Perl中的“引用”
- Perl引用简单使用
- perl中的引用
- perl 引用的例子
- Perl-12---引用
- Perl中的引用
- perl 引用 z
- perl 引用 详解
- Perl中的向后引用
- 修改Hadoop源码的搜索技巧
- Bmob文档阅读2-数据及其操作
- 自定义导航控制器
- mybatis(10) 延迟加载
- 【C++】非递归求二叉树的前序和中序序列
- PERL 引用与解引用
- 控制流
- 当你输入一个网址后回车,实际会发生什么?
- 我的彩票界面
- 源码阅读笔记
- 非主流自然语言处理——遗忘算法系列(二):大规模语料词库生成
- 没有躲过的坑--正则表达式截取字符串
- [转]iOS isa 浅析
- Poj 352 UVA oj 1395 Slim Span 最小生成树应用