您的位置:首页 > 其它

perl学习总结之引用

2011-10-03 19:07 260 查看
创建引用

创建规则1:在数组或者哈希前加反斜杠

$aref = \@array; # $aref now holds a reference to @array

$href = \%hash; # $href now holds a reference to %hash

当引用被储存在变量里,就可以如普通变量般使用。

创建规则2: [items]创建一个新的匿名数组,且返回一个指向数组的引用。{items}创建一个新的匿名哈希,且返回一个指向哈希的引用。

$aref = [ 1, "foo", undef, 13 ];

# $aref now holds a reference to an array

$href = { APR => 4, AUG => 8 };

# $href now holds a reference to a hash

规则1,规则2的比较:

# This:

$aref = [ 1, 2, 3 ];

# Does the same as this:

@array = (1, 2, 3);

$aref = \@array;

使用引用

使用规则 1

使用引用的时候,你可以将变量放到大括号里,来代替数组. eg:@{$aref} instead of @array

@a @{$aref} An array

reverse @a reverse @{$aref} Reverse the array

$a[3] ${$aref}[3] An element of the array

$a[3] = 17; ${$aref}[3] = 17 Assigning an element

%h %{$href} A hash

keys %h keys %{$href} Get the keys from the hash

$h{'red'} ${$href}{'red'} An element of the hash

$h{'red'} = 17 ${$href}{'red'} = 17 Assigning an element

使用规则 2

规则1的写法比较难于阅读,所以,们可以用简写的形式,来方便的阅读引用。

${$aref}[3] $aref->[3]

${$href}{red} $href->{red}

以上两种写法表达的是相同的内容

箭头规则

@a = ( [1, 2, 3],

[4, 5, 6],

[7, 8, 9]

);

$a[1] 包含一个匿名数组,列表为(4,5,6),它同时也是一个引用,使用规则2,我们可以这样写:$a[1]->[2] 值为6 ;类似的,$a[1]->[2]的值为2,这样,看起来像是一个二维数组。 使用箭头规则,还可以写的更加简单:

Instead of $a[1]->[2], we can write $a[1][2]

Instead of $a[0]->[1] = 23, we can write $a[0][1] = 23 这样,看起来就像是真正的二维数据了。

本文出自 “女运维-cathy” 博客,请务必保留此出处http://cathyz.blog.51cto.com/1527507/678765
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: