看板 Perl 關於我們 聯絡資訊
※ 引述《DreamYEN (我本善良)》之銘言: : 剛接觸perl不久,有些東西搞不太懂 : 請問些很淺的問題 : 假設有20個pattern a1 a2 a3 .. a20 : 當我用一個while去做替換 : while ($line = <>) { : if ($line =~ s/a1/b1/g) : } : 這樣子做的話,會連 a11 ~ a19的 a1 都被替換掉 : 不知道有什麼方法可以精確的只比到想要的字串呢 if ($line =~ s/a1([^\d])/b1$1/g) 像這樣把後面接著其他數字的 pattern 排除掉如何? : 另一個問題,當宣告一個陣列 : my @a = 0; : 這樣子只會給這個陣列中的第一個值設定 : 不知道是否可以像 c 一樣設定陣列的大小與初始值 : int a[10] = {0}; : 麻煩可以幫我解答這些簡單的問題..謝謝 目前想到的寫法是像這樣: my @arr; # 宣告一個陣列,目前它的大小為 0 $arr[10] = 0; # 現在這個陣列的大小是 11 @arr = map { 0 } @arr; # 把陣列裡每個元素的值都變成 0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.23.102
DreamYEN:謝謝你的回應 07/16 18:27
DreamYEN:後來我是在 a1 後面加上一個空白,這樣子就不錯判斷錯 07/16 18:27
DreamYEN:雖然很暴力,但是至少可能跑^^" 07/16 18:28