0

我需要将一个字符串与一个字符串数组进行匹配。我正在搜索的字符串应该能够包含通配符。

#!/usr/bin/perl
#
##   disable buffered I/O which would lead
##   to deadloops for the Apache server
$| = 1; 
#
##   read URLs one per line from stdin
while (<>) {
    my $line = $_;
    my @array1 = ("abc","def","ghi");
    $found = 0;
    if (/$line/i ~~ @array1)
    {
        print "found\n";
    }
    else
    {
        print "not found\n";
    }

}

我用输入测试这个脚本,abc它返回not found

perl ./mapscript.pl
abc
not found
4

3 回答 3

3

您的输入最后有一个换行符。添加:

chomp $line;

紧接着

my $line = $_;
于 2012-09-25T18:06:53.543 回答
2

用于chomp(my $input = $_)删除换行符而不是my $input = $_在你的 while..

** OOPs .. 没有看到我发布重复..

于 2012-09-25T18:11:08.977 回答
1

最后的换行符总是使用 <> 存在。见chomp

于 2012-09-25T23:03:35.817 回答