Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Perl::Critic::PoPerl::UseriContributedBPerliDocumentationrohibitStringyEval(3)

NAME
       Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval - Write
       "eval { my $foo;	bar($foo) }" instead of	"eval "my $foo;	bar($foo);"".

AFFILIATION
       This Policy is part of the core Perl::Critic distribution.

DESCRIPTION
       The string form of "eval" is recompiled every time it is	executed,
       whereas the block form is only compiled once.  Also, the	string form
       doesn't give compile-time warnings.

	   eval	"print $foo";	     # not ok
	   eval	{print $foo};	     # ok

CONFIGURATION
       There is	an "allow_includes" boolean option for this Policy.  If	set,
       then strings that look like they	only include a single "use" or
       "require" statement (with the possible following	statement that
       consists	of a single number) are	allowed.  With this option set,	the
       following are flagged as	indicated:

	   eval	'use Foo';	       # ok
	   eval	'require Foo';	       # ok
	   eval	"use $thingy;";	       # ok
	   eval	"require $thingy;";    # ok
	   eval	"use $thingy; 1;";     # ok
	   eval	"require $thingy; 1;"; # ok

	   eval	'use Foo; blah;';      # still not ok
	   eval	'require Foo; 2; 1;';  # still not ok
	   eval	'use $thingy;';	       # still not ok
	   eval	'no Foo';	       # still not ok

       If you don't understand why the number is allowed, see
       Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval.

       This option inspired by Ricardo SIGNES'
       Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire.

SEE ALSO
       Perl::Critic::Policy::BuiltInFunctions::RequireBlockGrep

       Perl::Critic::Policy::BuiltInFunctions::RequireBlockMap

AUTHOR
       Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>

COPYRIGHT
       Copyright (c) 2005-2011 Imaginative Software Systems.  All rights
       reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  The full text of this license can
       be found	in the LICENSE file included with this module.

perl v5.24.1	Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval(3)

NAME | AFFILIATION | DESCRIPTION | CONFIGURATION | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help