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 中的引用的更多相关文章

  1. [Perl系列—] 2. Perl 中的引用使用方法

    Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发人员来说, 指针这个概念一定不陌生. Perl 的引用就是指针,能够指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为 ...

  2. 【转载】Perl中的引用

    为什么使用引用? 在perl4中,hash表中的value字段只能是scalar,而不能是list,这对于有些情况是很不方便的,比如有下面的数据: Chicago, USAFrankfurt, Ger ...

  3. Perl中的正则表达式

    转自:http://c20031776.blog.163.com/blog/static/684716252013624383887/ Perl 程序中,正则表达式有三种存在形式 分别是 (1 模式匹 ...

  4. Perl中的匹配(六)

    在Perl中,匹配的定界符如果是双斜线//,可以直接使用双斜线完成匹配操作. 如果特定条件下需要改变定界符,如改为{},[]等.需要加入m,m{},m[]等. m%^http://% 默认的模式匹配对 ...

  5. perl5 第十二章 Perl5中的引用/指针

    第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用  子程序模板七.数组与子程序八.文件句 ...

  6. perl中my和our的区别分析

    来源: http://www.jb51.net/article/35528.htm perl中our的用法require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败. ...

  7. Perl中的hash类型

    hash类型 hash类型也称为字典.关联数组.映射(map)等等,其实它们都是同一种东西:键值对.每一个Key对应一个Value. hash会将key/value散列后,按序放进hash桶.散列后的 ...

  8. perl的匿名引用

    perl中列表不能嵌套,只能通过引用的方式构建复杂的结构.引用其实就是c中的指针,只不过perl中对指针,也就是一个地址的声明和取值有自己的一套方法. 1.先复习普通标量的引用方法: [vagrant ...

  9. perl 中的哈希赋值

    在perl 中,通过代码动态的给哈希赋值,是最常见的应用场景,但是有些情况下,我们事先知道一些信息,当需要把这些信息存放进一个哈希的时候,直接给哈希赋值就好: 哈希的key不用说,就是一个字符串,关键 ...

随机推荐

  1. 【驱动】MTD子系统分析

    MTD介绍 MTD,Memory Technology Device即内存技术设备 字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问:同时,两者读写数据的基本单元不同. 字符设备,以字节 ...

  2. BOE系统与BW系统间的单点登录(注:这里先简单写一下,改天有时间再进行详细的描述)

    1,在BOE系统内进行配置,将BW系统内的用户信息导入BOE 2,在BOE系统内定义这些导入用户对BOE对象有哪些权限 3,用户使用BW系统的用户名密码登录BOE系统:BOE将登录凭证转发给BW系统让 ...

  3. 【MLE】最大似然估计Maximum Likelihood Estimation

    模型已定,参数未知 已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值.最大似然估计是建立在这样的思想上:已知某个参数能使这个 ...

  4. maven 使用之自动编译热部署设置

    参见创建webapp项目 eclipse Maven 使用记录 ------ 建立 webapp项目 在maven中为实现热部署设置,部署至webapp,即webroot 设置classes输出目的地 ...

  5. 基于html5背景图片自适应代码

    基于html5背景图片自适应代码是一款背景不随滚动条滚动,会根据分辨率不同自动匹配对应的背景图片.效果图如下: 在线预览   源码下载 实现的代码. css代码: .jawbone-hero .jaw ...

  6. 园子里的一个Dal类

    public class DALHelper { public static List<T> Search<T>() where T : SH_SetBase { using ...

  7. C语言 · 3000米排名预测

    算法提高 3000米排名预测   时间限制:1.0s   内存限制:256.0MB      问题描述 3000米长跑时,围观党们兴高采烈地预测着最后的排名.因为他们来自不同的班,对所有运动员不一定都 ...

  8. [git]使用vimdiff做git代码比较

    #git 如何实现vimdiffgit config --global diff.tool vimdiff git config --global difftool.prompt false git ...

  9. c# 反射取其他项目的资源文件

    反射获取其他项目里面的资源文件. dll或exe里面 try { System.Reflection.Assembly dll = System.Reflection.Assembly.LoadFil ...

  10. wysiwyg加ckeditor加 代码高亮

    1.所需文件 drupal 版本:7.28 Wysiwyg- 7.x-2.2 (模块) 下载地址:http://drupal.org/project/wysiwyg Syntax Highlighte ...