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

FreeBSD Manual Pages


home | help

       Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls - Return
       value of	flagged	function ignored.

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

       This performs identically to InputOutput::RequireCheckedOpen/Close
       except that this	is configurable	to apply to any	function, whether core
       or user-defined.

       If your module uses Fatal, Fatal::Exception, or autodie then any
       functions wrapped by those modules will not trigger this	policy.	 For

	   use Fatal qw(open);
	   open	my $fh,	$filename;  # no violation
	   close $fh;		    # yes violation

	   use autodie;
	   open	$filehandle, $mode, $filename;	 # no violation

       Currently, autodie is not properly treated as a pragma; its lexical
       effects aren't taken into account.

       This policy watches for a configurable list of function names.  By
       default,	it applies to "open", "print", "say" and "close".  You can
       override	this to	set it to a different list of functions	with the
       "functions" and "exclude_functions" settings.  To do this, put entries
       in a .perlcriticrc file like this:

	   functions = open opendir read readline readdir close	closedir

       We have defined a few shortcuts for creating this list

	   functions = :defaults opendir readdir closedir

	   functions = :builtins

	   functions = :all

       The ":builtins" shortcut	above represents all of	the builtin functions
       that have error conditions (about 65 of them, many of them rather

       You can require checking	all builtins except "print" by combining the
       "functions" and "exclude_functions":

	   functions = :builtins
	   exclude_functions = print

       This is a lot easier to read than the alternative.

       The ":all" is the insane	case: you must check the return	value of EVERY
       function	call, even "return" and	"exit".	 Yes, this "feature" is
       overkill	and is wasting CPU cycles on your computer by just existing.
       Nyah nyah.  I shouldn't code after midnight.

       If you create a module that exports "autodie" you can tell this policy
       about it	with the "autodie_modules" setting:

	   autodie_modules = My::Thing

       Initial development of this policy was supported	by a grant from	the
       Perl Foundation.

       This policy module is based heavily on policies written by Andrew Moore

       Chris Dolan <>

       Copyright (c) 2007-2011 Chris Dolan.  Many 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.32.1	  Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls(3)


Want to link to this manual page? Use this URL:

home | help