perl 引用(一)
1. 普通变量引用 variable reference
引用就好比C语言的指针,引用变量存储被引用变量的地址。赋值时注意要在变量前加上 \;使用时要多加一个 $ 。
当然,引用也可以成为简单变量,可以使用引用的引用,使用时要记得多加一个$.引用也可以互相赋值
1 #!/usr/bin/perl -w 2 my $variable="this is a reference test\n"; 3 my $refv=\$variable; 4 my $refr=\$refv; 5 print "this is \$refv:$refv\n"; 6 print "this is \$variable \$\$refv:$$refv"; 7 print "this is reference's reference \$\$reference :$$refr\n"; 8 print "this is \$variable \$\$\$refr:$$$refr";
D:\>perl reference.pl
this is $refv:SCALAR(0x468b20)
this is $variable $$refv:this is a reference test
this is reference's reference $$reference :SCALAR(0x468b20)
this is $variable $$$refr:this is a reference test
2. 数组变量引用 array reference
数组引用跟变量引用一样
1 #!/usr/bin/perl -w 2 my @array=qw/this is an array reference test/; 3 my $refa=\@array; 4 print "this is \@array[0]:$refa->[0]\n"; 5 print "this is \@array[1]:$$refa[1]\n"; 6 print "this is \@array use \@\$refa:@$refa\n";
使用一个元素 $$refa[n] 或者$refa->[n]
使用全部元素:@$refa
结果:
this is @array[0]:this
this is @array[1]:is
this is @array use @$refa:this is an array reference test
关于数组使用引用的好处 请参考:http://www.cnblogs.com/tobecrazy/archive/2013/06/11/3131887.html
3. 哈希变量引用 hash reference
哈希引用和变量引用数组引用一样,只需复制时加上\ ,使用时加上%
1 #!/usr/bin/perl -w 2 my %hash=('a'=>"Hash",'b'=>"reference",'c'=>"test"); 3 my $refh=\%hash; 4 print "this is \$\$refh:$$refh{'a'}\n"; 5 print "use whole hash with \%\$refh \n"; 6 foreach $key (keys %$refh) 7 { 8 print "$key => $$refh{$key}"; 9 print "\n"; 10 }
%$refh 使用整个哈希
$$refh{$key} 使用一个hash 元素
运行结果:
this is $$refh:Hash
use whole hash with %$refh
c => test
a => Hash
b => reference
4. 匿名引用
a.匿名变量
$refva=\"this is anonymous variable\n";
使用方法和变量引用一样,只需要$$refva
b. 匿名数组 注意使用方括号[],使用方法同数组引用一样
$refaa=[qw/this is anonymous array/];
c. 匿名哈希 注意使用花括号 {},使用方法同hash引用
$refha{'a'=>"Hash",'b'=>"reference",'c'=>"test" }
总结:
1.引用赋值需要加\ ,使用时变量在引用变量前加$ ,数组加@ 哈希加%
2.引用可以用在两个数组在函数中传递,避免数组被压缩成一个数组
3.引用可以对匿名数组 变量 哈希使用
4.引用可以创造perl结构体,使用二维数组(下一次总结)
perl 引用(一)相关推荐
- Perl引用,解引用的对比总结(转)
Perl引用,解引用的对比总结 标量 数组 散列 函数 定义符号 $ @ % & 定义 $test @test %test Sub test 使用 $test = 'a' @test = ...
- perl数组硬引用_Perl基础 Perl引用和数组用法解析
本文和大家重点讨论一下Perl引用和数组的概念,Perl5中的两种Perl引用类型为硬引用和符号引用.符号引用含有变量的名字,它对运行时创建变量名并定位很有用,基本上,符号Perl引用就象文件名或UN ...
- [Perl系列—] 2. Perl 中的引用用法
Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发者来说, 指针这个概念一定不陌生. Perl 的引用就是指针,可以指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为硬 ...
- [Perl系列—] 2. Perl 中的引用使用方法
Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发人员来说, 指针这个概念一定不陌生. Perl 的引用就是指针,能够指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为 ...
- 读写生信流程必备的 Perl 语法
最早就是写Perl的,后来来到公司转Python,现在又要负责流程了,开始重拾Perl,当然是借鉴别人现有的语法,我再重新组合. 基本语法就不介绍了,参照我之前文章 Perl 模块 use stric ...
- Perl面向对象编程入门
因为项目原因,接触了一门新的语言--Perl.初识之时,觉得它既像bash shell,又像C语言.因为有C/C++/Java以及shell基础,所以这门语言上水并没有很困难,但是它的面向对象还是给了 ...
- cdn perl_菜鸟教程perl总结
数据类型有: 标量$, 数组@,哈希% 数组声明 : @hits= (25, 30, 40); 或者 @sites= qw/google taobao runoob/; 数组操作 pop, p ...
- Perl语言面向对象入门
阅读原文请点击 摘要: 通过一些简单代码来展示一下Perl的面向对象编程,可以帮助新手快速上手. 因为项目原因,接触了一门新的语言----Perl.初识之时,觉得它既像bash shell,又像C语言 ...
- Perl学习教程大纲
以下是一个可能的 Perl 学习教程大纲: 一.Perl 简介 Perl 的历史和发展 Perl 的特点和优点 Perl 的应用领域 二.Perl 基础语法 Perl 的变量和数据类型 Perl 的运 ...
最新文章
- 加州理工让无人机长出腿:走路飞行无缝切换,还能玩滑板、走钢丝|Sicence子刊...
- 程序从命令行接收多个数字,求和之后输出结果。
- Unity3D 场景与C# Control进行结合
- mysql多条数据合并一条之后取出重复值
- python三维图的坐标_用Python 画个六维图,涨姿势了
- 02-通过修改映射在本地模拟Eureka集群
- 从王者荣耀看设计模式(六.状态模式)
- [转载]从菜鸟到架构师
- thinkphp sql查询条件 一个字段多个限制条件
- WAS:WAS 6.1/7.0上EJB客户端开发
- FastStone Capture 9.3 汉化绿色便携版 - 极品屏幕截图工具
- 三种获取当前时间戳的方式
- 股票开户天载钢铁等板块跌幅居前
- teraterm 执行sql命令_一款轻量级终端工具TeraTerm的脚本介绍(一)
- springboot整合
- Java的求学之路--Day01
- javascript第六周总结
- python结合mitmproxy抓包实践
- 七天百度飞桨强化学习心得
- 数据融合(data fusion)原理与方法