看板 Perl 關於我們 聯絡資訊
下面是我自己寫的一個程式 my $input = shift; my $string = "你好嗎"; if ($string =~ /$input/) { print "有在其中\n"; }else{ print "沒有\n"; } 但遇到一個小bug 就是如果輸入的是空格 依然會顯示"有在其中" 想問一下問題出在哪 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.217.81
rkcity:檢查一下你$input 猜測是你沒有正確讀入"空白字元" 11/06 20:25
n1lk5g2:不懂大大意思 請問是? 11/07 00:37
rkcity:$input的內容真的是'空白字元'嗎? 11/07 04:38
rkcity:command line可以傳空白字元當引數嗎._.? 可以的話我也想學 11/07 18:11
rkcity:改用$input = <STDIN>讓使用者輸入吧 11/07 18:12
rkcity:你應該還需要用到chomp把input後面的換行字元去掉 11/07 18:13
※ 編輯: n1lk5g2 來自: 140.114.217.81 (11/07 21:31)
n1lk5g2:那我chomp應該怎麼用呢? 抱歉我是新手 看著書學的... 11/07 21:31
n1lk5g2:很不會perl...只有按照書上寫出排數字大小的程式而已 11/07 21:32
drm343:chomp($input = <STDIN>); 11/07 21:55
drm343:其實我也想知道為什麼 shift 會導致 if 為真 11/07 22:01
drm343:另一個解決 bug 的方法是在比對之前,先比對 $input,這樣 11/07 22:08
drm343:就不需要改變 shift 的輸入方式, 11/07 22:08
drm343:if ( $input eq "" ){exit;} 11/07 22:08