看板 Perl 關於我們 聯絡資訊
我將我整段程式貼出來,敢請各位前輩指教 ._.)> #如果 array 存在就跑這一段 if(@insert_inspectorc) { #抓大小跑迴圈 $number_contributor=@insert_inspectorc; for(0..$number_contributor) { #判斷教授頭銜是否有指這個字 PS:已經修改過板友提示的部份 #但還是抓不到 XD" if($insert_rolec[$_]=~/指/) { #移除指導教授名字中間空格的 $insert_inspectorc[$_]=~s/[ ]+//g; #將教授名字存到 $advisor 變數 $advisor.=":".@insert_inspectorc[$_]; } } } 我後續有將 @insert_inspectorc 這個陣列列印出來, 一切正常,都可以看到指導教授這幾個字,跟每位教授的名字 EX: 指導教授 張三 advisor three 委員 李四 committe four 而這段後面是跑英文比對的部份, 最後 advisor 要將 張三,three 這樣串在一起 而 $advisor 確實都有抓到我要的 ,three 這一部份 可是不知道為啥就是 張三抓不進來 我後續串在一起是這樣寫的 $advisor.=",".@insert_inspector[$_]; 應該也沒有錯,重點應該就是在為啥中文一直跑不過去 困惑 Q_Qa ※ 引述《sweetwords (米虫三號)》之銘言: : 我是用 big5 模式下編寫,然後再用支程式去轉成 utf8 格式 : 這支程式主要是比對是否有相關字然後做後續的動作 : 可是當我下中文這個判斷的時候 : if($insert_rolec =~/.指.*/) code : print $insert_rolec; : 我主要想法是,字串中出現「指」這個字就將這個字列印出來 : 可是怎麼跑都不會跑到下列去 : 我也有試過把這個變數,跟我想要的字拿來直接做比對 : 例如 : if($insert_rolec eq '指導教授') : 可是一樣不能 orz" : 請問這大概是啥問題呢? : 亦或是我比對那邊寫得不對或是有誤 ._.? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.194.56
david220:$insert_rolec => $insert_inspectorc 06/06 07:45
david220:for(0..$number_contributor) => 06/06 07:46
david220:for(0..$number_contributor - 1) 06/06 07:46
sweetwords:role是存頭銜 inspectorc 是存名字沒錯 ._. 06/06 09:11
sweetwords:所以應該是用 role 去判斷吧 '-' 06/06 09:12