作者dragonforce3 (瑤)
看板Perl
標題perl scalar reference小問題
時間Fri May 25 15:53:54 2018
請教大家一個關於scalar ref的小問題
my $project = "aaa";
.
.
.
open(FH,<file);
foreach (<FH>){ # 這行為 project : bbb
my @tmp = split(":",$_);
my $token = $tmp[0]; #值為 project
my $value = $tmp[1]; #值為 bbb
# chomp 以及空白字元處理就不打上來了
$$token = $value;
}
預期 $$token這行應該等效下行
$project = $value
但實際上卻不是這樣
也分別印出 $project 與 $$token 的位址
確實不同
請問這是我對於 reference理解錯誤嗎?
謝謝幫忙!
-----
Sent from JPTT on my Asus ASUS_Z01HDA.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.246.6.223
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1527234840.A.C7E.html
推 flu: 把$project改成以our宣告就可以了 05/25 17:04
→ flu: $$token那一行使用到的symbolic reference只能用來對 05/25 17:05
→ flu: package variable起作用 05/25 17:06
→ flu: 以my宣告的變數不會出現在symbol table裡 所以symbolic ref 05/25 17:08
→ flu: 的方式找不到你要的那個變數 05/25 17:09
→ flu: 說到底還是加上 use strict; use warnings; 比較能避開 05/25 17:10
→ flu: 類似這種看似細微但是出錯時又不是能一眼看透的錯誤 05/25 17:12
→ flu: 可以參考perlref 文件, modern perl(非書名) 05/25 17:21
推 cutekid: 推 f 大解釋,長知識了。 05/25 18:02
→ dragonforce3: 感謝f大 謝謝 功力又更深一層了 05/26 06:25