manpagez: man pages & more
man Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop(3)
Home | html | info | man
Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop(3)




NAME

       Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop - Write
       "while( $line = <> ){...}" instead of "for(<>){...}".


AFFILIATION

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


DESCRIPTION

       Using the readline operator in a "for" or "foreach" loop is very slow.
       The iteration list of the loop creates a list context, which causes the
       readline operator to read the entire input stream before iteration even
       starts.  Instead, just use a "while" loop, which only reads one line at
       a time.

         for my $line ( <$file_handle> ){ do_something($line) }      #not ok
         while ( my $line = <$file_handle> ){ do_something($line) }  #ok


CONFIGURATION

       This Policy is not configurable except for the standard options.


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.28.2   Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop(3)

perl-critic 1.134.0 - Generated Mon Jun 3 12:50:10 CDT 2019
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.