Perl教學(xué) 第12篇 Perl5中的引用之二
發(fā)表時(shí)間:2024-02-07 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]運(yùn)行結(jié)果如下:$ test 1 2 3 4 Pointer Address of ARGV = ARRAY(0x806c378)Number of arguments : 40 : 1;1 : 2;2 : 3;3 : 4; 第5行將引用$pointer指向數(shù)組@ARGV,第6行輸出ARGV的地址。...
運(yùn)行結(jié)果如下:
$ test 1 2 3 4
Pointer Address of ARGV = ARRAY(0x806c378)
Number of arguments : 4
0 : 1;
1 : 2;
2 : 3;
3 : 4;
第5行將引用$pointer指向數(shù)組@ARGV,第6行輸出ARGV的地址。$pointer返回?cái)?shù)組第一個(gè)元素的地址,這與C語(yǔ)言中的數(shù)組指針是類(lèi)似的。第7行調(diào)用函數(shù)scalar()獲得數(shù)組的元素個(gè)數(shù),該參數(shù)亦可為@ARGV,但用指針則必須用@$pointer的形式指定其類(lèi)型為數(shù)組,$pointer給出地址,@符號(hào)說(shuō)明傳遞的地址為數(shù)組的第一個(gè)元素的地址。第10行與第7行類(lèi)似,第11行用形式$$pointer[$i]列出所有元素。
對(duì)關(guān)聯(lián)數(shù)組使用反斜線操作符的方法是一樣的--把所有關(guān)聯(lián)數(shù)組名換成引用$poniter。注意數(shù)組和簡(jiǎn)單變量(標(biāo)量)的引用顯示時(shí)均帶有類(lèi)型--ARRAY和SCALAR,哈希表(關(guān)聯(lián)數(shù)組)和函數(shù)也一樣,分別為HASH和CODE。下面是哈希表的引用的例子。
#!/usr/bin/perl
1 #
2 # Using Associative Array references
3 #
4 %month = (
5 '01', 'Jan',
6 '02', 'Feb',
7 '03', 'Mar',
8 '04', 'Apr',
9 '05', 'May',
10 '06', 'Jun',
11 '07', 'Jul',
12 '08', 'Aug',
13 '09', 'Sep',
14 '10', 'Oct',
15 '11', 'Nov',
16 '12', 'Dec',
17 );
18
19 $pointer = \%month;
20
21 printf "\n Address of hash = $pointer\n ";
22
23 #
24 # The following lines would be used to print out the
25 # contents of the associative array if %month was used.
26 #
27 # foreach $i (sort keys %month) {
28 # printf "\n $i $$pointer{$i} ";
29 # }
30
31 #
32 # The reference to the associative array via $pointer
33 #
34 foreach $i (sort keys %$pointer) {
35 printf "$i is $$pointer{$i} \n";
36 }
結(jié)果輸出如下:
$ mth
Address of hash = HASH(0x806c52c)
01 is Jan
02 is Feb
03 is Mar
04 is Apr
05 is May
06 is Jun
07 is Jul
08 is Aug
09 is Sep
10 is Oct
11 is Nov
12 is Dec