看板 Perl 關於我們 聯絡資訊
sorry我是perl新手,這些問題總是讓我用perl parse檔案的時候 花超多時間debug 誇張到用手改搞不好都比較快了 XD 請問chomp為什麼要回傳"砍掉的字元數"? 不知道有沒有實用的例子 因為以新手來說 回傳剩下的字串($_)不是很直觀嗎? 如果我要處理chomp過的結果 我除了用$line = $_ 這樣外 有別的function可以使用嗎 我用hash table %table = (); $table{"aaa.bbb"}=0; 沒問題 但是 print $table{"aaa.bbb"} 會出錯 好像要${table{"aaa.bbb"}}才行 這是為什麼阿? foreach (my $iter) @array {} 我知道這裡出了兩個問題 第一個是 (my $iter)要把括號去掉 但我不解為什麼learning perl裡說 只要不影響解讀的括號都可以加或不加 這裡加了括號會變甚麼意思? 另外 @array的 list context本來不就是他所含的 list本身嗎 為什麼我一定要加 (@array)?? 請問$_是global variable嗎 那我用 foreach (@array1) { foreach (@array2) { print $_; } } 但是我又想print @array1的東西,請問我該怎麼辦? 有甚麼方法可以知道我現在的$_, 是指哪個scope裡的$_嗎 謝謝願意回答的大大!!我覺得這些好像是重要的觀念問題,可是我在網路上找到 的答案都支離破碎的,都快要瘋掉了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 66.68.104.202
scwg: chomp($line = $_) 04/09 10:22
scwg: foreach 後面的括號是語法的一部分, foreach(my $iter) 會被 04/09 10:23
scwg:認為 my $iter 是要跑遍的 list. 04/09 10:23
scwg:foreach 用到 $_ 比較像 local $_; 出了範圍就恢復原值, 不過 04/09 10:25
scwg:沒辦法去得外面 scope 的 $_ 04/09 10:25
scwg: 取 04/09 10:26
jakechou:hash的問題用''好像可以解決??? 04/09 11:02
jakechou:謝謝大大 foreach的問題 好像"串列問題"討論串有 04/09 11:04
jakechou:可是我原來看不懂@@ 04/09 11:04
scwg:hash 的問題我無法重現, 看你要不要貼完整程式碼? 04/10 15:16