有人能指出我在这个perl程序中所犯的错误吗?

bib*_*bhu 3 regex perl

根据下面的代码,我应该bibhu打印一次,j如果我在运行时输入"bibhu",则应该为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";
Run Code Online (Sandbox Code Playgroud)

Luc*_*ski 7

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

chomp($find = <STDIN>);
Run Code Online (Sandbox Code Playgroud)

没有它,如果你在提示符下输入"bibhu",$find将等于"bibhu\n".