При копании в каком-то старом исходном коде я увидел следующее:
my $module = $some{module};
eval "require $module";
die "Bad module\[email protected]" if [email protected];
в то время как я понимаю, что делает этот код, он пытается «требовать» модуль и умирают, когда он неудачно - perlcritic жалуется на это
Выражение «eval» по строке 331, столбец 13. См. Стр. 161 из PBP. (Серьезность: 5)
К сожалению, я нету книги PBP, так интересно, что это правильный метод выше ...
Кроме того, в том же источнике найдено:
sub test_repo_file {
my($self, $repo, $test) = @_;
my $abspath = repo_abs_path($repo);
return "eval -$test $abspath";
}
Здесь не понимается, что решает «eval», а perlcritic снова жалуется на «string eval» ...
Может кто-нибудь объяснить основные моменты о «строке eval» и как правильно написать выше ?