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

FreeBSD Manual Pages

  
 
  

home | help
Perl::Critic::Policy::User:ContributedlPerl:Documentatio:ProhibitTwoArgOpen(3)

NAME
       Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen - Write "open
       $fh, q{<}, $filename;" instead of "open $fh, "<$filename";".

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

DESCRIPTION
       The three-argument form of "open" (introduced in	Perl 5.6) prevents
       subtle bugs that	occur when the filename	starts with funny characters
       like '>'	or '<'.	 The IO::File module provides a	nice object-oriented
       interface to filehandles, which I think is more elegant anyway.

	 open( $fh, '>output.txt' );	      #	not ok
	 open( $fh, q{>}, 'output.txt' );     #	ok

	 use IO::File;
	 my $fh	= IO::File->new( 'output.txt', q{>} ); # even better!

       It's also more explicitly clear to define the input mode	of the file,
       as in the difference between these two:

	 open( $fh, 'foo.txt' );       # BAD: Reader must think	what default mode is
	 open( $fh, '<', 'foo.txt' );  # GOOD: Reader can see open mode

       This policy will	not complain if	the file explicitly states that	it is
       compatible with a version of perl prior to 5.6 via an include
       statement, e.g. by having "require 5.005" in it.

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

NOTES
       There are two cases in which you	are forced to use the two-argument
       form of open. When re-opening STDIN, STDOUT, or STDERR, and when	doing
       a safe pipe open, as described in perlipc.

SEE ALSO
       IO::Handle

       IO::File

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.

perl v5.24.1	      Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen(3)

NAME | AFFILIATION | DESCRIPTION | CONFIGURATION | NOTES | 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::InputOutput::ProhibitTwoArgOpen&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help