У меня есть проблема с использованием Perl grep() со строкой, которая может содержать символы, которые интерпретируются как кванторы регулярных выражений.
Я получил следующую ошибку, когда grep-шаблон "g++", потому что символы "+" интерпретируются как кванторы. Ниже приведен вывод для следующей программы:
1..3
ok 1 - grep, pattern not found
ok 2 - grep, pattern found
Nested quantifiers in regex; marked by <-- HERE
in m/g++ <-- HERE / at escape_regexp_quantifier.pl line 8.
Есть ли модификатор, который я мог бы использовать для указания grep, что кванторы должны игнорироваться, или есть функция, которая могла бы избежать кванторов?
#! /usr/bin/perl 
sub test_grep($)
{
    my $filter = shift;
    my @output = ("-r-xr-xr-x   3 root     bin       122260 Jan 23  2005 gcc",
                  "-r-xr-xr-x   4 root     bin       124844 Jan 23  2005 g++");
    return grep (!/$filter/, @output);
}
use Test::Simple tests => 2;
ok(test_grep("foo"), "grep, pattern not found");
ok(test_grep("gcc"), "grep, pattern found");
ok(test_grep("g++"), "grep, pattern found");
PS: в дополнение к вопросу ответа выше, я приветствую любые отзывы об использовании Perl в приведенном выше примере, поскольку я все еще участвую. Благодаря
