我有一个使用严格的 Perl 脚本
use strict
我想通过使用不区分大小写的比较与我拥有的 var 从数组中 grep 元素
my ($sPermIdIndex) = grep $aHeaderLine[$_] eq $sPermIdField/i, 0 .. $#aHeaderLine;
这一行给我错误
Bareword "i" not allowed while "strict subs" in use
如何让它发挥作用?
谢谢
如果在比较之前将它们折叠起来,则可以不区分大小写地比较它们:
fc("Foo") eq fc("fOO")
您可以使用折叠两个字符串fc
并进行比较
my ($sPermIdIndex) = grep {
# use v5.16; or prefix with CORE::
CORE::fc($aHeaderLine[$_]) eq CORE::fc($sPermIdField)
}
0 .. $#aHeaderLine;
它的工作原理与使用 regex 相同$aHeaderLine[$_] =~ /^\Q$sPermIdField\E\z/i
。