语法
创建'引用'仅有两种方法,使用它也是两种。
创建引用
创建规则 1
如果你在一个变量前加一个'/'号,你就得到了这个变量的'引用'。
$aref = /@array; # $aref 保存着指向@array的'引用'
$href = /%hash; # $href 保存着指向%hash的'引用'
当你把'引用'保存在类似 $aref 或 $href的变量中,你就可以象操作其他标量一样copy或保存它。
$xy = $aref; # $xy 现在保存了指向 @array 的'引用'
$p[3] = $href; # $p[3] 现在保存了指向 %hash 的'引用'
$z = $p[3]; # $z 现在保存了指向 %hash 的'引用'
这些例子展示了如何创建命名变量的'引用',但是有时候,我们创建的数组或哈希没有名字。这个和你使用没有放到变量中去的字符串'/n'或数字'80'类似。
创建规则 2
[ ITEMS ] 创建了一个新的、匿名的数组,并返回一个指向这个数组的'引用'。 { ITEMS } 创建了一个新的、匿名的哈希,并返回那个哈希的一个'引用'。
$aref = [ 1, "foo", undef, 13 ];
# $aref 保存了这个数组的'引用'
$href = { APR =>; 4, AUG =>; 8 };
# $href 保存了这个哈希的'引用'
从规则 2 中得到的'引用'和从规则 1 中得到的'引用'是同一种类型的:
# 这里:
$aref = [ 1, 2, 3 ];
# 和上面一样:
@array = (1, 2, 3);
$aref = /@array;
前面一种方法是后面两行的缩写,除了第一种方法没有创建一个多余的数组变量@array。
如果你只是编写符号 [], 你将得到一个新的、空匿名数组。如果你使用符号 {},就能得到一个新的、空匿名哈希。
使用引用
当你创建了一个'引用'后,你可以对它做什么操作呢?它是标量,你可以象处理任何标量一样保存和取回它。除此之外,还有两种使用方法:
使用规则 1
你可以始终用一个带有大括号的数组'引用',来替换一个数组的名字。例如,用 @{$aref} 代替 @array。
下面是一个用法的一些例子:
数组:
@a @{$aref} 一个数组
新闻热点
疑难解答