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

FreeBSD Manual Pages

  
 
  

home | help
Perl::Critic::PolicPerUserrContributedyPerlmDocumentationrohibitUnixDevNull(3)

NAME
       Perl::Critic::Policy::Compatibility::ProhibitUnixDevNull	- don't	use
       explicit	/dev/null

DESCRIPTION
       This policy is part of the "Perl::Critic::Pulp" add-on.	It ask you to
       not to use filename

	   /dev/null

       explicitly, but instead "File::Spec->devnull()" for maximum portability
       across operating	systems.

       This policy is under the	"maintenance" theme (see "POLICY THEMES" in
       Perl::Critic) on	the basis that even if you're on a Unix	system now you
       never know where	your code might	travel in the future.

       "devnull()" is new in "File::Spec" version 0.8, so you should require
       that version (it's included in Perl 5.6.0 and up).

       The checks for /dev/null	are unsophisticated.  A	violation is reported
       for any string "/dev/null", possibly with an "open" style mode part,
       and any "qw" containing "/dev/null".

	   open	my $fh,	'< /dev/null';			  # bad
	   do_something	("/dev/null");			  # bad
	   foreach my $file (qw(/dev/null /etc/passwd))	  # bad

       String comparisons are allowed because they're not uses of /dev/null as
       such but	likely some sort of cross-platform check.

	   if ($f eq '/dev/null') { ...	}		  # ok
	   return ($f ne '>/dev/null');			  # ok

       /dev/null as just part of a string is allowed, including	things like
       backticks and "system".

	   print "Flames to /dev/null please\n"		  # ok
	   system ('rmdir /foo/bar >/dev/null 2>&1');	  # ok
	   $hi = `echo hi </dev/null`;			  # ok

       Whether /dev/null is a good idea	in such	command	strings	depends	what
       sort of shell you reach with that command and how much of Unix it might
       emulate on a non-Unix system.

   Disabling
       If you only ever	use a system with /dev/null or if everything else you
       write is	hopelessly wedded to Unix anyway then you can disable
       "ProhibitUnixDevNull" from your .perlcriticrc in	the usual way (see
       "CONFIGURATION" in Perl::Critic),

	   [-Compatibility::ProhibitUnixDevNull]

SEE ALSO
       Perl::Critic::Pulp, Perl::Critic, File::Spec

HOME PAGE
       <http://user42.tuxfamily.org/perl-critic-pulp/index.html>

COPYRIGHT
       Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Kevin
       Ryde

       Perl-Critic-Pulp	is free	software; you can redistribute it and/or
       modify it under the terms of the	GNU General Public License as
       published by the	Free Software Foundation; either version 3, or (at
       your option) any	later version.

       Perl-Critic-Pulp	is distributed in the hope that	it will	be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A	PARTICULAR PURPOSE.  See the GNU
       General Public License for more details.

       You should have received	a copy of the GNU General Public License along
       with Perl-Critic-Pulp.  If not, see <http://www.gnu.org/licenses/>.

perl v5.24.1	   Perl::Critic::Policy::Compatibility::ProhibitUnixDevNull(3)

NAME | DESCRIPTION | SEE ALSO | HOME PAGE | COPYRIGHT

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

home | help