Я думаю, что проблема здесь в том, что оператор backtick эффективно выполняет код вне среды perl, и поэтому совершенно справедливо не является доверенным, т.е.tainted.
Конечно, вы можете попробовать сделать что-то вроде этого перед ошибочной строкой:
$ENV{"PATH"} = "";
Возможно, вы все равно получите сообщение об ошибке:
my $file = "justafile.txt";
Чтобы исправить это, вы, вероятно, могли бы просто дать ему абсолютный путь, например:
my $file = "/home/blah/justafile.txt";
Вам почти наверняка придется указать абсолютный путь к команде grep, которую вы выполняете с помощью оператора backtick., так как очистка переменных окружения потеряет путь.Другими словами:
# Begin searching terms and ignoring case
my @entries = `/bin/grep -i \"$searchterm\" $file`; # Line10
Вы также можете скопировать значение $ENV
, прежде чем очистить его, на тот случай, если оно понадобится вам позже ...
Надеюсь, что некоторые изэто помогает!