小编agr*_*gri的帖子

Perl:index() 不适用于 $array[$i] 之类的变量

我有两个数组,一个包含来自错误日志的长字符串,第二个包含单词列表。我需要查找,其中一个词是否与任何错误字符串匹配。我想使用 index()。

我所拥有的是:@park 是一整页,一行一行。我剪下第 1 行并将其放入 $err1 @omit 是从文件中读取的单词列表。包含“Kein Zugriffsrecht”、“约束违反”等内容。我从数组中逐行获取(用 处理chomp())并将其放入 $fehler。

while (@park){
    my $i = $#park;
    $zeile1 = splice (@park,$i,1);
    @foo1 = split(";", $zeile1);
    $err1 = $foo1[1];
    
    for my $b (0..$#omit){
    $prob1 = 0;
    $fehler = $omit[$b];
#   $fehler="constraint violation";

    $prob1 = index ($err1, $fehler);
...
}   

Run Code Online (Sandbox Code Playgroud)

关键是,它$prob1 = index ($err1, $fehler); 总是给出 -1(未找到)。如果我设置$fehler为“违反约束”之类的东西,就像上面的注释行一样, index() 将给出正确的数字。什么可能导致这种行为?问候

arrays perl string-matching

-1
推荐指数
1
解决办法
85
查看次数

标签 统计

arrays ×1

perl ×1

string-matching ×1