[轉錄] reference (轉錄文章)

看板Perl作者 (:))時間20年前 (2004/08/14 15:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
:: ------------------ :: 文章,如要看 :: 請待我詢問作者意見 :: 再行轉錄 ....(也就是我的老師啦 ^^) telnet://bbs.math.ncu.edu.tw --> (C)lass --> 3 Math/ --> 3 Course/ --> 10 Math_Perl *** 轉錄於 中大數學系 吳維漢 教授的文章 *** 作者: weihan (天天天藍) 站內: Math_Perl 標題: reference 時間: Fri May 28 20:01:04 2004 reference (參考) 是以間接的方式來讀取/修改另一個變數的資料 (1) scalar reference $a = "abc" ; $b = \$a ; # 定義 $b 為 $a 的一個 scalar reference 以上 $a 之前要加上 '\' 符號 這樣就可以透過 $b 來間接地讀取或者改變 $a 的數值 print "$$b" ; # 相當於 print "$a" $$b = "def" ; # 相當於 $a = "def" 因此 scalar 之前加上 '\' 就變成為 reference referece 之前加上 '$' 就回復為 scalar (2) array reference 同樣的方式也可以適用於 array @a = ( 3 , 2 , 7 ) ; $b = \@a ; # 定義 $b 為 @a 的一個 array reference print "@$b\n" ; # 相當於 print "@a\n" @$b = 1 .. 4 ; # 相當於 @a = 1 .. 4 因此 array 之前加上 '\' 就變成為 reference reference 之前加上 '@' 就回復為 array 如果要利用 array reference 來讀取陣列內的單一元素, 可用 $$b[1] = 9 ; # 相當於 $a[1] = 9 以上也可以寫成 ${$b}[1] = 9 ; 或者是 $b->[1] = 9 ; # 這種方式比較方便觀看 讀到這裡 你應該會有個疑問 為何我要閒著無聊將陣列改用這種方式來寫 這個問題要等到撰寫函式時就會非常清楚 在此先將 reference 的語法先 弄清楚 (3) hash reference 同樣的若使用在 hash 則為 %a = ( Tom => 13 , John => 18 , Mary => 22 ) ; $b = \%a ; 因此 %$b 就相當於 %a $$b{Tom} 就相當於 $a{Tom} $$b{Tom} 也可以寫成 ${$b}{Tom} 或者是 $b->{Tom} 因此若要透過 reference 將 hash 印出來則為 for ( keys %$b ) { print "$_ : $b->{$_} \n" ; } -- =================================================================== * 人生的意義 : 盡責任 負責任 * * 人生的目的 : 受報  還願  行善 * * 人生的價值 : 奉獻  付出 * ================================================== 聖嚴法師 語 === -- 發信站 [中央數學 織夢天堂 bbs.math.ncu.edu.tw] ‧FROM [ziyou2.math.ncu.edu.tw] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.207.58 ※ 編輯: oktryit 來自: 140.115.207.58 (08/14 15:14) ※ 編輯: oktryit 來自: 140.115.207.58 (08/14 15:19)
文章代碼(AID): #117RiPip (Perl)
文章代碼(AID): #117RiPip (Perl)