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 引用(一)相关推荐

  1. Perl引用,解引用的对比总结(转)

    Perl引用,解引用的对比总结   标量 数组 散列 函数 定义符号 $ @ % & 定义 $test @test %test Sub test 使用 $test = 'a' @test = ...

  2. perl数组硬引用_Perl基础 Perl引用和数组用法解析

    本文和大家重点讨论一下Perl引用和数组的概念,Perl5中的两种Perl引用类型为硬引用和符号引用.符号引用含有变量的名字,它对运行时创建变量名并定位很有用,基本上,符号Perl引用就象文件名或UN ...

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

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

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

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

  5. 读写生信流程必备的 Perl 语法

    最早就是写Perl的,后来来到公司转Python,现在又要负责流程了,开始重拾Perl,当然是借鉴别人现有的语法,我再重新组合. 基本语法就不介绍了,参照我之前文章 Perl 模块 use stric ...

  6. Perl面向对象编程入门

    因为项目原因,接触了一门新的语言--Perl.初识之时,觉得它既像bash shell,又像C语言.因为有C/C++/Java以及shell基础,所以这门语言上水并没有很困难,但是它的面向对象还是给了 ...

  7. cdn perl_菜鸟教程perl总结

    数据类型有:  标量$, 数组@,哈希% 数组声明 :  @hits= (25, 30, 40);  或者  @sites= qw/google taobao runoob/; 数组操作 pop, p ...

  8. Perl语言面向对象入门

    阅读原文请点击 摘要: 通过一些简单代码来展示一下Perl的面向对象编程,可以帮助新手快速上手. 因为项目原因,接触了一门新的语言----Perl.初识之时,觉得它既像bash shell,又像C语言 ...

  9. Perl学习教程大纲

    以下是一个可能的 Perl 学习教程大纲: 一.Perl 简介 Perl 的历史和发展 Perl 的特点和优点 Perl 的应用领域 二.Perl 基础语法 Perl 的变量和数据类型 Perl 的运 ...

最新文章

  1. 加州理工让无人机长出腿:走路飞行无缝切换,还能玩滑板、走钢丝|Sicence子刊...
  2. 程序从命令行接收多个数字,求和之后输出结果。
  3. Unity3D 场景与C# Control进行结合
  4. mysql多条数据合并一条之后取出重复值
  5. python三维图的坐标_用Python 画个六维图,涨姿势了
  6. 02-通过修改映射在本地模拟Eureka集群
  7. 从王者荣耀看设计模式(六.状态模式)
  8. [转载]从菜鸟到架构师
  9. thinkphp sql查询条件 一个字段多个限制条件
  10. WAS:WAS 6.1/7.0上EJB客户端开发
  11. FastStone Capture 9.3 汉化绿色便携版 - 极品屏幕截图工具
  12. 三种获取当前时间戳的方式
  13. 股票开户天载钢铁等板块跌幅居前
  14. teraterm 执行sql命令_一款轻量级终端工具TeraTerm的脚本介绍(一)
  15. springboot整合
  16. Java的求学之路--Day01
  17. javascript第六周总结
  18. python结合mitmproxy抓包实践
  19. 七天百度飞桨强化学习心得
  20. 数据融合(data fusion)原理与方法

热门文章

  1. java 继承与多态
  2. 用cookie实现保存密码
  3. 用Jquery控制文本框只能输入数字和字母及jquery自定义方法$.fn
  4. 数组作为函数参数进行传递
  5. SQL2000输入的值与数据类型不一致,或者此值与列的长度不一致“
  6. 三次简化一张图:一招理解LSTM/GRU门控机制
  7. 豪华电动汽车品牌“歌昂” 即将登场,背后是国内新造车势力新特
  8. linux操作系统网络内核优化
  9. [算法]一次商品交易利益最大化
  10. [基础]Linux文件说明