語法
創(chuàng)建'引用'僅有兩種方法,使用它也是兩種。
創(chuàng)建引用
創(chuàng)建規(guī)則 1
如果你在一個(gè)變量前加一個(gè)'/'號(hào),你就得到了這個(gè)變量的'引用'。
$aref = /@array; # $aref 保存著指向@array的'引用'
$href = /%hash; # $href 保存著指向%hash的'引用'
當(dāng)你把'引用'保存在類似 $aref 或 $href的變量中,你就可以象操作其他標(biāo)量一樣copy或保存它。
$xy = $aref; # $xy 現(xiàn)在保存了指向 @array 的'引用'
$p[3] = $href; # $p[3] 現(xiàn)在保存了指向 %hash 的'引用'
$z = $p[3]; # $z 現(xiàn)在保存了指向 %hash 的'引用'
這些例子展示了如何創(chuàng)建命名變量的'引用',但是有時(shí)候,我們創(chuàng)建的數(shù)組或哈希沒有名字。這個(gè)和你使用沒有放到變量中去的字符串'/n'或數(shù)字'80'類似。
創(chuàng)建規(guī)則 2
[ ITEMS ] 創(chuàng)建了一個(gè)新的、匿名的數(shù)組,并返回一個(gè)指向這個(gè)數(shù)組的'引用'。 { ITEMS } 創(chuàng)建了一個(gè)新的、匿名的哈希,并返回那個(gè)哈希的一個(gè)'引用'。
$aref = [ 1, "foo", undef, 13 ];
# $aref 保存了這個(gè)數(shù)組的'引用'
$href = { APR =>; 4, AUG =>; 8 };
# $href 保存了這個(gè)哈希的'引用'
從規(guī)則 2 中得到的'引用'和從規(guī)則 1 中得到的'引用'是同一種類型的:
# 這里:
$aref = [ 1, 2, 3 ];
# 和上面一樣:
@array = (1, 2, 3);
$aref = /@array;
前面一種方法是后面兩行的縮寫,除了第一種方法沒有創(chuàng)建一個(gè)多余的數(shù)組變量@array。
如果你只是編寫符號(hào) [], 你將得到一個(gè)新的、空匿名數(shù)組。如果你使用符號(hào) {},就能得到一個(gè)新的、空匿名哈希。
使用引用
當(dāng)你創(chuàng)建了一個(gè)'引用'后,你可以對(duì)它做什么操作呢?它是標(biāo)量,你可以象處理任何標(biāo)量一樣保存和取回它。除此之外,還有兩種使用方法:
使用規(guī)則 1
你可以始終用一個(gè)帶有大括號(hào)的數(shù)組'引用',來替換一個(gè)數(shù)組的名字。例如,用 @{$aref} 代替 @array。
下面是一個(gè)用法的一些例子:
數(shù)組:
@a @{$aref} 一個(gè)數(shù)組
新聞熱點(diǎn)
疑難解答
圖片精選