作者n1lk5g2 (不决定习惯自由)
看板Perl
标题[问题] 关於搜寻字串
时间Sat Nov 6 17:25:55 2010
下面是我自己写的一个程式
my $input = shift;
my $string = "你好吗";
if ($string =~ /$input/) {
print "有在其中\n";
}else{
print "没有\n";
}
但遇到一个小bug
就是如果输入的是空格 依然会显示"有在其中"
想问一下问题出在哪
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.217.81
1F:推 rkcity:检查一下你$input 猜测是你没有正确读入"空白字元" 11/06 20:25
2F:→ n1lk5g2:不懂大大意思 请问是? 11/07 00:37
3F:→ rkcity:$input的内容真的是'空白字元'吗? 11/07 04:38
4F:→ rkcity:command line可以传空白字元当引数吗._.? 可以的话我也想学 11/07 18:11
5F:→ rkcity:改用$input = <STDIN>让使用者输入吧 11/07 18:12
6F:→ rkcity:你应该还需要用到chomp把input後面的换行字元去掉 11/07 18:13
※ 编辑: n1lk5g2 来自: 140.114.217.81 (11/07 21:31)
7F:→ n1lk5g2:那我chomp应该怎麽用呢? 抱歉我是新手 看着书学的... 11/07 21:31
8F:→ n1lk5g2:很不会perl...只有按照书上写出排数字大小的程式而已 11/07 21:32
9F:→ drm343:chomp($input = <STDIN>); 11/07 21:55
10F:→ drm343:其实我也想知道为什麽 shift 会导致 if 为真 11/07 22:01
11F:→ drm343:另一个解决 bug 的方法是在比对之前,先比对 $input,这样 11/07 22:08
12F:→ drm343:就不需要改变 shift 的输入方式, 11/07 22:08
13F:→ drm343:if ( $input eq "" ){exit;} 11/07 22:08