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

FreeBSD Manual Pages

  
 
  

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

NAME
       Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin	- Use "<>" or
       "<ARGV>"	or a prompting module instead of "<STDIN>".

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

DESCRIPTION
       Perl has	a useful magic filehandle called *ARGV that checks the command
       line and	if there are any arguments, opens and reads those as files.
       If there	are no arguments, *ARGV	behaves	like *STDIN instead.  This
       behavior	is almost always what you want if you want to create a program
       that reads from "STDIN".	 This is often written in one of the following
       two equivalent forms:

	 while (<ARGV>)	{
	   # ... do something with each	input line ...
	 }
	 # or, equivalently:
	 while (<>) {
	   # ... do something with each	input line ...
	 }

       If you want to prompt for user input, try special purpose modules like
       IO::Prompt.

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

CAVEATS
       Due to a	bug in the current version of PPI (v1.119_03) and earlier, the
       readline	operator is often misinterpreted as less-than and greater-than
       operators after a comma.	 Therefore, this policy	misses important cases
       like

	 my $content = join '',	<STDIN>;

       because it interprets that line as the nonsensical statement:

	 my $content = join '',	< STDIN	>;

       When that PPI bug is fixed, this	policy should start catching those
       violations automatically.

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

AUTHOR
       Chris Dolan <cdolan@cpan.org>

COPYRIGHT
       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.24.1	   Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin(3)

NAME | AFFILIATION | DESCRIPTION | CONFIGURATION | CAVEATS | CREDITS | AUTHOR | COPYRIGHT

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

home | help