Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Perl::Critic::PPerl::Critic::Policy::InputOutput::ProhibitBacktickOperators(3)

NAME
       Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators -
       Discourage stuff like "@files = `ls $directory`".

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

DESCRIPTION
       Backticks are super-convenient, especially for CGI programs, but I find
       that they make a lot of noise by filling up STDERR with messages when
       they fail.  I think its better to use IPC::Open3 to trap all the output
       and let the application decide what to do with it.

	   use IPC::Open3 'open3';
	   $SIG{CHLD} = 'IGNORE';

	   @output = `some_command`;			  #not ok

	   my ($writer, $reader, $err);
	   open3($writer, $reader, $err, 'some_command'); #ok;
	   @output = <$reader>;	 #Output here
	   @errors = <$err>;	 #Errors here, instead of the console

CONFIGURATION
       Alternatively, if you do want to use backticks, you can restrict checks
       to void contexts by adding the following to your .perlcriticrc file:

	   [InputOutput::ProhibitBacktickOperators]
	   only_in_void_context = 1

       The purpose of backticks is to capture the output of an external
       command.	 Use of them in a void context is likely a bug.	 If the output
       isn't actually required, "system()" should be used.  Otherwise assign
       the result to a variable.

	   `some_command`;			#not ok
	   $output = `some_command`;		#ok
	   @output = `some_command`;		#ok

NOTES
       This policy also prohibits the generalized form of backticks seen as
       "qx{}".

       See perlipc for more discussion on using "wait()" instead of
       "$SIG{CHLD} = 'IGNORE'".

       You might consider using the "capture()" function from the
       IPC::System::Simple module for a safer way of doing what backticks do,
       especially on Windows.  The module also has a safe wrapper around
       "system()".

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.  The full text of this license can
       be found in the LICENSE file included with this module.

perl v5.14.1   Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net