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

1、先复习普通标量的引用方法:

[vagrant@bio ~]$ cat t1.pl
use v5.;
use warnings;
my $a=;
my $p=\$a;
say $a;
say $p;
say ${$p};
say $$p;
say "==========";
my @arr=(,,);
my $pArr=\@arr;
say @arr;
say $pArr;
say ${$pArr}[];
# say $pArr[0];
say $pArr->[];
[vagrant@bio ~]$ perl t1.pl SCALAR(0xd8f6d0) ========== ARRAY(0xd9c7f0)

2、以一个数组说明:

[vagrant@bio ~]$ cat t1.pl
use v5.;
use warnings;
my @arr1=(,,); #声明一个数组
my @arr2=(,,); #声明另一个数组
$arr1[]=\@arr2; #把数组arr1中下标为3的值,存放一个引用标量,该标量存放对数组arr2的引用
say @arr1; #打印数组1
[vagrant@bio ~]$ perl t1.pl
123ARRAY(0x1e47798)

3、如果想对数组中的引用中的结构(这里是另一个数组),进行取值,有3中方法。

[vagrant@bio ~]$ cat t1.pl
use v5.;
use warnings;
my @arr1=(,,);
my @arr2=(,,);
$arr1[]=\@arr2;
say @arr1;
#say $arr1[3] #错误
say $arr1[][]; #第一种最简单,好像一个2维数组
say ${$arr1[]}[]; #标准的引用调用方法
say $arr1[]->[]; #瘦箭头引用方法
[vagrant@bio ~]$ perl t1.pl
123ARRAY(0x14627d8) [vagrant@bio ~]$

perl的匿名引用的更多相关文章

  1. 【转载】Perl中的引用

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

  2. perl 中的引用

    perl 语言中的引用共分为两类: 声明引用时只需要在对象的前面加上反斜杠 第一列是数组的引用: 代码示例: , , ); my $array_ref = \@array; 第二种是哈希的引用 代码示 ...

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

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

  4. perl 函数回调 引用$client->run(sub {$client->sync});

    匿名函数引用: [root@wx03 wx]# perl a1.pl CODE(0x2077b30) test [root@wx03 wx]# cat a1.pl $ref= sub {return ...

  5. perl 对象 bless 引用

    [root@dr-mysql01 ~]# cat aa.pl use LWP::UserAgent; use Data::Dumper; my $ua = LWP::UserAgent->new ...

  6. perl 引用(数组和hash引用) --- perlreftut - Mark 的一个简单的'引用'教程 ---Understand References Today. --Mark Jason Dominus, Plover Systems (mjd-perl-ref+@plover.com)

    https://blog.csdn.net/fangwei1235/article/details/8570886 首页 博客 学院 下载 论坛 APP 问答 商城 活动 VIP会员 招聘 ITeye ...

  7. Perl 引用与匿名数组

    写这篇是因为工作遇到一个需要使用列表作为hash的值的问题,这在Python中是非常简单而轻松的事,如下面这段python程序. def add_to_index(index, keyword, ur ...

  8. perl 引用(一)

    1. 普通变量引用 variable reference 引用就好比C语言的指针,引用变量存储被引用变量的地址.赋值时注意要在变量前加上 \;使用时要多加一个 $ . 当然,引用也可以成为简单变量,可 ...

  9. Perl 引用:引用就是指针,Perl 引用是一个标量类型可以指向变量、数组、哈希表(也叫关联数组)甚至子程序。

    Perl 引用引用就是指针,Perl 引用是一个标量类型可以指向变量.数组.哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方. 1.创建引用1.使用斜线\定义变量的时候,在变量名前面加个\, ...

随机推荐

  1. 能说明你的Javascript技术很烂的五个原因

    Javascript在互联网上名声很臭,但你又很难再找到一个像它这样如此动态.如此被广泛使用.如此根植于我们的生活中的另外一种语言.它的低学习门槛让很多人都称它为学前脚本语言,它另外一个让人嘲笑的东西 ...

  2. [置顶] Zend Optimizer 和 Zend Debugger 同时安装

    下载地址: Zend Optimizer:  http://download.csdn.net/detail/wf120355/6479947 Zend Debugger: http://downlo ...

  3. php之快速入门学习-8(if-else)

    PHP If...Else 语句 条件语句用于根据不同条件执行不同动作. PHP 条件语句 当您编写代码时,您常常需要为不同的判断执行不同的动作.您可以在代码中使用条件语句来完成此任务. 在 PHP ...

  4. Oracle体系结构一(学习笔记)

    总体结构分为三个部分:SGA,PGA,FILE文件 按功能分: 存储结构  存储结构对应关系  主要文件: 数据文件: 每个数据文件只与一个数据库相关联 一个表空间可以包含一个或者多个数据文件 一个数 ...

  5. windows XP系统搜索无线网络时提示“windows无法配置此无线连接”,如何处理?

    转自:http://support1.lenovo.com.cn/lenovo/wsi/htmls/detail_12839009034375918.html 文章编号:C191612     201 ...

  6. apache并发测试工具ab为什么测不准

    apache并发测试工具ab为什么测不准 发表于2年前(2013-03-21 12:13)   阅读(1146) | 评论(1) 1人收藏此文章, 我要收藏 赞0 3月21日 深圳 OSC 源创会正在 ...

  7. 【laravel5.4】关键字【use】使用

    1.在namespace 和 class 之间使用,是引入类文件的意思,命名空间过长或者类文件同名,可以使用[as]区别 2.在class 类里面使用[use],是导入trait  类的意思,多继承的 ...

  8. PHP-深入学习Smarty

    本文中的边界标签分别为"<{"和"}>" start-12, 都是静态模板中的内容, 即使函数也只是模板中的标签或者变量调解器; 13-end, 都 ...

  9. Notepad++的json 格式化

      1. 打开nodepad++   2. 找到JSON Viewer 点击右上角"安装", 会有提示框安装重启notepad++, 点击ok    3. 自动重启后, 就可以看到 ...

  10. 微软解决方案框架 - MSF的团队模型、MSF的开发模型,关于SA系统分析师信息的一篇好帖子

    msf中的开发模型 书中关于六个小组的人员的案例: MSF 组队模型 v. 3.1-http://bbs.51cto.com/thread-1171-1.html 微软解决方案框架 - MSF的团队模 ...