根据下面的代码,如果我在运行时输入“bibhu”,我应该打印一次 bibhu 并且 j 应该是 1。但它没有发生。为什么我得到 j=0

print "enter\n";
$find=<STDIN>;
$j=0;
@lines=qw(bibhu prasanna behera kuni shun jbjdkj);
foreach (@lines) {
    if ($_ =~ /$find/) {
        print "$_\n";
        $j=$j+1;
    }
}
print "$j\n";

最佳答案

您需要从输入中去除换行符,只需调用 chomp :

chomp($find = <STDIN>);

没有那个,如果你在提示符下输入“bibhu”, $find 将等于 "bibhu\n"

关于regex - 有人能指出我在这个 perl 程序中犯的错误吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36616574/

10-11 01:46