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.使用斜线\定义变量的时候,在变量名前面加个\, ...
随机推荐
- Office EXCEL VBA如何取得EXCEL中的行数和列数
VBA取得EXCEL表格中的行数和列数 请注意不要使用Columus等关键字作为变量,例如"Columus = ActiveSheet.UsedRange.Columns.Count&quo ...
- berkelydb学习
http://www.oracle.com/technetwork/cn/java/seltzer-berkeleydb-sql-085418-zhs.html 官网中文学习网址
- 单链表的增、删、改、减(C++)
首先是是一个简单的例子,单链表的建立和输出. 程序1.1 #include<iostream> #include<string> using namespace std; st ...
- UILabel字体加粗
titleLabel.font = [UIFontboldSystemFontOfSize:16];
- PHP MySQL -处理语句
PHP MySQL 预处理语句 预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下: 预 ...
- POJ1679 The Unique MST 【次小生成树】
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 20421 Accepted: 7183 D ...
- hadoop的namenode无法启动的解决的方法
安装hadoop集群时,启动集群,发现master节点的namenode没有启动成功.这一般都是没有格式格式化namenode的缘故.格式化一下就可以,格式化namenode的命令:在hadoop安装 ...
- java 动态生成类再编译最后代理
package spring.vhostall.com.proxy; public interface Store { public void sell(); } ------------------ ...
- 简单的 Helper 封装 -- CookieHelper
using System; using System.Web; namespace ConsoleApplication5 { /// <summary> /// Cookie 助手 // ...
- yum插件yum-fastestmirror
yum多个mirror自动选择速度最快的mirror,yum-fastestmirror插件,它会自动选择最快的mirror 配置文件: /etc/yum/pluginconf.d/fastestmi ...