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