Ricardo SIGNES > Perl-Critic-Lax-0.009 > Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire

Download:
Perl-Critic-Lax-0.009.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.009   Source   Latest Release: Perl-Critic-Lax-0.011

NAME ^

Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire - stringy eval is bad, but it's okay just to "require"

VERSION ^

version 0.009

DESCRIPTION ^

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;

Then again, maybe you should use Module::Runtime.

AUTHOR ^

Ricardo Signes <rjbs@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2012 by Ricardo Signes <rjbs@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: