[問題] 新手鳥問 array hash $_

看板Perl作者 (jakechou)時間14年前 (2011/04/09 09:57), 編輯推噓3(307)
留言10則, 2人參與, 最新討論串1/1
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

04/09 10:22, , 1F
chomp($line = $_)
04/09 10:22, 1F

04/09 10:23, , 2F
foreach 後面的括號是語法的一部分, foreach(my $iter) 會被
04/09 10:23, 2F

04/09 10:23, , 3F
認為 my $iter 是要跑遍的 list.
04/09 10:23, 3F

04/09 10:25, , 4F
foreach 用到 $_ 比較像 local $_; 出了範圍就恢復原值, 不過
04/09 10:25, 4F

04/09 10:25, , 5F
沒辦法去得外面 scope 的 $_
04/09 10:25, 5F

04/09 10:26, , 6F
04/09 10:26, 6F

04/09 11:02, , 7F
hash的問題用''好像可以解決???
04/09 11:02, 7F

04/09 11:04, , 8F
謝謝大大 foreach的問題 好像"串列問題"討論串有
04/09 11:04, 8F

04/09 11:04, , 9F
可是我原來看不懂@@
04/09 11:04, 9F

04/10 15:16, , 10F
hash 的問題我無法重現, 看你要不要貼完整程式碼?
04/10 15:16, 10F
文章代碼(AID): #1DdxpujA (Perl)
文章代碼(AID): #1DdxpujA (Perl)