perl的匿名引用
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的匿名引用的更多相关文章
- 【转载】Perl中的引用
为什么使用引用? 在perl4中,hash表中的value字段只能是scalar,而不能是list,这对于有些情况是很不方便的,比如有下面的数据: Chicago, USAFrankfurt, Ger ...
- perl 中的引用
perl 语言中的引用共分为两类: 声明引用时只需要在对象的前面加上反斜杠 第一列是数组的引用: 代码示例: , , ); my $array_ref = \@array; 第二种是哈希的引用 代码示 ...
- [Perl系列—] 2. Perl 中的引用使用方法
Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发人员来说, 指针这个概念一定不陌生. Perl 的引用就是指针,能够指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为 ...
- perl 函数回调 引用$client->run(sub {$client->sync});
匿名函数引用: [root@wx03 wx]# perl a1.pl CODE(0x2077b30) test [root@wx03 wx]# cat a1.pl $ref= sub {return ...
- perl 对象 bless 引用
[root@dr-mysql01 ~]# cat aa.pl use LWP::UserAgent; use Data::Dumper; my $ua = LWP::UserAgent->new ...
- 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 ...
- Perl 引用与匿名数组
写这篇是因为工作遇到一个需要使用列表作为hash的值的问题,这在Python中是非常简单而轻松的事,如下面这段python程序. def add_to_index(index, keyword, ur ...
- perl 引用(一)
1. 普通变量引用 variable reference 引用就好比C语言的指针,引用变量存储被引用变量的地址.赋值时注意要在变量前加上 \;使用时要多加一个 $ . 当然,引用也可以成为简单变量,可 ...
- Perl 引用:引用就是指针,Perl 引用是一个标量类型可以指向变量、数组、哈希表(也叫关联数组)甚至子程序。
Perl 引用引用就是指针,Perl 引用是一个标量类型可以指向变量.数组.哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方. 1.创建引用1.使用斜线\定义变量的时候,在变量名前面加个\, ...
随机推荐
- TP3.2 APP_DEBUG=false关闭调试后访问不了。页面错误!请稍后再试~
在APP_DEBUG=true时是没问题的,在APP_DEBUG=false时才会出现找不到模板的问题. 经过排查可能是模板文件找不到问题,之前是这么写的. 改为这个就好了. ----------- ...
- java面试第九天
图形界面: 布局管理器: CardLayout:卡片布局,面板重叠放置,只能看到一个,最先添加的会被显示出来,可以进行翻动 两种构造方法: CardLayout() 创建一个间隙大小为 0 的新卡片布 ...
- $nextTick 宏任务 微任务 macrotasks microtasks
1.nextTick调用方法 首先看nextTick的调用方法: https://cn.vuejs.org/v2/api/#Vue-nextTick // 修改数据 vm.msg = 'Hello' ...
- openerp 中文乱码及界面翻译不全
openerp中文报表乱码问题,即是字体问题,环境是ubuntu 12.04 openerp 6.1, deb all in one安装方式 一.cd usr/share/fonts/truetype ...
- while(cin>>word)时的结束方法
有一个要注意的地方,以前不理解在while里面用cin >> val是什么意思,用这个当条件的话,通过检测其流的状态来判断结束: (1)若流是有效的,即流未遇到错误,那么检测成功: (2) ...
- Json动态添加属性
一维Json: var Json={}: Json.name="小明"; Json.age="12": Json.sex="男": 输出效果 ...
- linux shutdown命令
shutdown [-t 秒] [-arkhncfF] 时间 [警告信息] 常用选项与参数: -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思 -k : 不要真的关机,只是发送警告信息出 ...
- te
var option = {}; $(function() { /* var taskId = ${pd.taskId}; */ var taskId = "1470880530369&qu ...
- Android API之java.lang.String
boolean java.lang.String.contains(CharSequence cs) String字符串是否包含CharSequence(cs).
- Spring +Mybatis 企业应用实战(脑图)