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";
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|