Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire - Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire documentation


Perl-Critic-Lax documentation  | view source Contained in the Perl-Critic-Lax distribution.

Index


NAME

Top

Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire

VERSION

Top

version 0.008

DESCRIPTION

Top

Sure, everybody sane agrees that stringy eval is usually a bad thing, but sometimes you need it, and you don't want to have to stick a no critic on the end, because dangit, what you are doing is just not wrong!

See, require is busted. You can't pass it a variable containing the name of a module and have it look through @INC. That has lead to this common idiom:

  eval qq{ require $module } or die $@;

This policy acts just like BuiltinFunctions::ProhibitStringyEval, but makes an exception when the content of the string is PPI-parseable Perl that looks something like this:

  require $module
  require $module[2];
  use $module (); 1;

AUTHOR

Top

Ricardo SIGNES <rjbs@cpan.org>

Adapted from BuiltinFunctions::ProhibitStringyEval by Jeffrey Ryan Thalhammer

COPYRIGHT

Top


Perl-Critic-Lax documentation  | view source Contained in the Perl-Critic-Lax distribution.