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

FreeBSD Manual Pages

  
 
  

home | help
Perl::CritiPerl::CritiUseroContributedoPerluDocumentationbitUnreachableCode(3)

NAME
       Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode	-
       Don't write code	after an unconditional "die, exit, or next".

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

DESCRIPTION
       This policy prohibits code following a statement	which unconditionally
       alters the program flow.	 This includes calls to	"exit",	"die",
       "return", "next", "last"	and "goto".  Due to common usage, "croak" and
       "confess" from Carp are also included.

       Code is reachable if any	of the following conditions are	true:

       o   Flow-altering statement has a conditional attached to it

       o   Statement is	on the right side of an	operator "&&", "||", "//",
	   "and", "or",	or "err".

       o   Code	is prefixed with a label (can potentially be reached via
	   "goto")

       o   Code	is a subroutine

EXAMPLES
	 # not ok

	 exit;
	 print "123\n";

	 # ok

	 exit if !$xyz;
	 print "123\n";

	 # not ok

	 for ( 1 .. 10 ) {
	     next;
	     print 1;
	 }

	 # ok

	 for ( 1 .. 10 ) {
	     next if $_	== 5;
	     print 1;
	 }

	 # not ok

	 sub foo {
	     my	$bar = shift;
	     return;
	     print 1;
	 }

	 # ok

	 sub foo {
	     my	$bar = shift;
	     return if $bar->baz();
	     print 1;
	 }

	 # not ok

	 die;
	 print "123\n";

	 # ok

	 die;
	 LABEL:	print "123\n";

	 # not ok

	 croak;
	 do_something();

	 # ok

	 croak;
	 sub do_something {}

CONFIGURATION
       This Policy is not configurable except for the standard options.

SEE ALSO
       Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls

AUTHOR
       Peter Guzis <pguzis@cpan.org>

COPYRIGHT
       Copyright (c) 2006-2011 Peter Guzis.  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.Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode(3)

NAME | AFFILIATION | DESCRIPTION | EXAMPLES | 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::ControlStructures::ProhibitUnreachableCode&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help