perl 中的引用
perl 语言中的引用共分为两类:
声明引用时只需要在对象的前面加上反斜杠
第一列是数组的引用:
代码示例:
my @array = (, , );
my $array_ref = \@array;
第二种是哈希的引用
代码示例:
my %hash = (, , , );
my $hash_ref = \@hash;
通过引用去访问对应的值,通过 -> 操作符
数组的引用, 通过 [ ] 中括号 加上对应的下标,代码示例:
my @array = (, , );
my $array_ref = \@array;
print $array_ref->[];
哈希的引用,通过{} 大括号加上对应的key,代码示例:
my %hash = (, , , );
my $hash_ref = \@hash;
print $array_ref->{};
当我们想要把引用对应的变量传递给另外一个变量时,就需要解引用,使用 { } 大括号
代码示例:
my @array = (, , );
my $array_ref = \@array;
my @array_new = @{$array_ref}; my %hash = (, , , );
my $hash_ref = \@hash;
my %hash_new = %{$hash_ref};
数组的引用通过 @ 符号 , 哈希的引用通过 % 符号;
引用实际上存储的是所引用对象的地址,举个例子
perl -e 'my @a = (1, 2, 3, 4);my $b = \@a;print qq{$b\n};'
ARRAY(0x122bae8) perl -e 'my %a = (1, 2, 3, 4);my $b = \%a;print qq{$b\n};'
HASH(0x262dae8)
从上述代码的运行结果可以看出,数组的引用对应的值是 ARRAY+ 地址,哈希的引用是HASH+ 地址,这里的地址是一个16进制的值
除了使用 \ 符号, 声明一个引用外,还可以声明一个匿名引用, 数组的引用使用 [ ] 操作符, 哈希的引用使用 { } 操作符;
代码示例:
my $array_ref = [, , , ];
my $hash_ref = {, , , } print $array_ref->[];
print $hash_ref->{};
perl 中的引用的更多相关文章
- [Perl系列—] 2. Perl 中的引用使用方法
Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发人员来说, 指针这个概念一定不陌生. Perl 的引用就是指针,能够指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为 ...
- 【转载】Perl中的引用
为什么使用引用? 在perl4中,hash表中的value字段只能是scalar,而不能是list,这对于有些情况是很不方便的,比如有下面的数据: Chicago, USAFrankfurt, Ger ...
- Perl中的正则表达式
转自:http://c20031776.blog.163.com/blog/static/684716252013624383887/ Perl 程序中,正则表达式有三种存在形式 分别是 (1 模式匹 ...
- Perl中的匹配(六)
在Perl中,匹配的定界符如果是双斜线//,可以直接使用双斜线完成匹配操作. 如果特定条件下需要改变定界符,如改为{},[]等.需要加入m,m{},m[]等. m%^http://% 默认的模式匹配对 ...
- perl5 第十二章 Perl5中的引用/指针
第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用 子程序模板七.数组与子程序八.文件句 ...
- perl中my和our的区别分析
来源: http://www.jb51.net/article/35528.htm perl中our的用法require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败. ...
- Perl中的hash类型
hash类型 hash类型也称为字典.关联数组.映射(map)等等,其实它们都是同一种东西:键值对.每一个Key对应一个Value. hash会将key/value散列后,按序放进hash桶.散列后的 ...
- perl的匿名引用
perl中列表不能嵌套,只能通过引用的方式构建复杂的结构.引用其实就是c中的指针,只不过perl中对指针,也就是一个地址的声明和取值有自己的一套方法. 1.先复习普通标量的引用方法: [vagrant ...
- perl 中的哈希赋值
在perl 中,通过代码动态的给哈希赋值,是最常见的应用场景,但是有些情况下,我们事先知道一些信息,当需要把这些信息存放进一个哈希的时候,直接给哈希赋值就好: 哈希的key不用说,就是一个字符串,关键 ...
随机推荐
- OpenSUSE安装软件
zypper se xxxxx 是搜索软件包 zypper in xxxxx 跟你的apt-get install xxxx等价 zypper rm xxxx 删除 zypper up xxxx 更新 ...
- vue2.0如何自定义全局变量的方法
方法一:http://www.jianshu.com/p/04dffe7a6b74 //在mian.js中写入函数 Vue.prototype.changeData = function (){ al ...
- 【Bootstrap Method】Evaluating The Accuracy of a Classifier
自助法介绍: 非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法,也称为自助法.其核心思想和基本步骤如下:(1)采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样 ...
- Zabbix监控JVM内存
上篇最后提到了jstat,jstat可以查看统计JVM内存信息,那么结合Zabbix,就可以监控多实例的JVM内存了. 1.下面两个脚本部署在被监控主机: vm.py 用于JVM实例PID查找,ps命 ...
- (转载)跟我一起学习VIM - The Life Changing Editor
原文: http://ju.outofmemory.cn/entry/79671 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种 ...
- kali Rolling安装之后的一些常用配置总结(更新)
原文: https://ssooking.github.io/kali-rolling-an-zhuang-zhi-hou-de-yi-xie-chang-yong-pei-zhi-zong-jie/ ...
- Android 开发自己的网络收音机4——读取XML文件的电台数据
国内外的电台数据很多,起码有好几百,所以把这些数据都写到代码里面是不实际的.只能写成一个数据文件,程序启动的时候再去加载.保存这些简单数据,我们肯定会优先使用XML文件,今天讲讲如何读取XML里面的数 ...
- win8中完成进度
public sealed partial class WorkItem : Page { private IAsyncAction _threadPoolWorkItem; private Manu ...
- Git 基本概念
版本控制系统 (VCS) 版本控制系统 (VCS) 是软件,帮助软件开发人员携手合作,他们的工作并保持完整的历史. 以下是VCS目标 允许开发人员同步工作. 不要覆盖对方的变化. 维护历史的每一个版本 ...
- resttemplate 文件上传 上传文件
springmvc RestTemplate文件上传 RestTemplate上传文件总结