Chinaunix首页 | 论坛 | 博客
  • 博客访问: 477648
  • 博文数量: 104
  • 博客积分: 3455
  • 博客等级: 中校
  • 技术积分: 1216
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-18 18:33
文章分类

全部博文(104)

文章存档

2015年(3)

2014年(1)

2013年(7)

2012年(8)

2011年(11)

2010年(18)

2009年(56)

我的朋友

分类:

2009-03-16 19:22:02

Perl中的引用为标量类型.可视为C语言中的指针.
引用分为软引用和硬引用.软引用类似于软链接,存储一个变量的名字.而硬引用类似于硬链接,存储一个变量的内存地址.
软引用
$scalar="hello";
$refer="scalar";
print $$refer;     #打印"hello"
硬引用
$scalar="hello";
$refer=\$scalar;  
print $$refer;    #打印"hello"
反斜线操作符'\'与C语言中传递地址的操作符&功能类似,在软引用中$refer等于字符串scalar,在引用中$refer是$scalar的地址.不推荐使用软引用.

$refer=\@arrary; 数组引用.
$refer->[0]  ${$refer}[0]
$refer=\%hash;   散列引用.
$refer->{$key} ${$refer}{$key}
$refer=[] 用于创建匿名数组.
$refer={} 用于创建匿名散列.

因为在Perl中,数组和散列的元素都必须是标量,所以不能直接建立二维或则三维的.通过引用,可以方便的建立.
例:
@array=( [1,2,3],[4,5,6],[7,8,9]);  #建立一个数组,每个元素为一个匿名数组引用.
$array[0] 值为第一个匿名数组的引用.
$array[0]->[0] 表示数组的第一个元素 1
两个下标之间的箭头是可选的
$array[0][0]==$array[0]->[0]==${$array[0]}[0]







阅读(1873) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~