http://qs321.pair.com?node_id=1217300


in reply to Re: Print contents of text file line by line
in thread Print contents of text file line by line

That will slurp the entire file into memory all at once, which is almost always what isn't desired.

Use the scalar, but do so in proper context. The OP is assuming that the return from each file handle read is an array, which it isn't. In a while() loop like the OP has, the file handle is read a line at a time, so the scalar holds everything up to end-of-line (including the newline character(s)). To use an array as you suggested would mean that you'd have to eliminate said while() loop.

use warnings; use strict; open my $fh, '<', "file.txt" or die "can't open the flippin' flabergastin' file!: $!"; while (my $line = <$fh>){ chomp $line; print "something here $line\n"; }

Note that if the while() block is very small, a well-known Perl idiom is to use the built-in special default variable:

use warnings; use strict; open my $fh, '<', "file.txt" or die "can't open the flippin' flabergastin' file!: $!"; while (<$fh>){ chomp; print "something here $_\n"; }