perlcritic арбитру с Expression форме «Eval» [BuiltinFunctions :: ProhibitStringyEval] на первой Eval линии, используя код:Избегайте PerlCritic когда вставляя переменные с Eval
use strict;
use warnings;
use feature qw/say/;
my $hasTwitter = 1;
my $validEmail = 0;
my $rule = '${hasTwitter} | ${validEmail}';
my $result = eval $rule;
say "Result -> $result";
$result = eval { $rule };
say "Result -> $result";
Я пытался использовать Eval {}, чтобы исправить perlCritic, но затем он не возвращает ожидаемый результат.
Отклик:
Result -> 1
Result -> ${hasTwitter} | ${validEmail}
Есть обходной путь, используя интерполяцию строки? Идея состоит в том, чтобы иметь набор правил в файле конфигурации и позволить коду читать и оценивать их.
Благодаря
perlcritic всегда может быть "фиксированной", добавив '## не critic' на ошибочную строку – mob
... а именно:' мой $ результат = Eval $ правило; ## no crit (ProhibitStringyEval); – toolic
Кстати, это '|' (побитовое или) должно быть, вероятно, '||' (логическое или). – ikegami