in reply to Re^3: File handling basics
in thread File handling basics

Yeah. It's working. But  print $_; is printing whole text at a time. I want read every line. store it as an array and process.

Replies are listed 'Best First'.
Re^5: File handling basics
by Laurent_R (Canon) on Jul 17, 2015 at 11:29 UTC
    Yeah. It's working. But print $_; is printing whole text at a time.
    It is not exactly what it happening. In fact, the while loop reads one input line at a time and print $_; print each of these lines in turn. The difference is more important than you might think, as shown just below.

    I want read every line. store it as an array and process.
    Although you can do that, this is very rarely what you want to do. What you want to do, most of the time, is to read one line at a time with the while loop, process the line (e.g. make some changes to it and print the modified content, or extract some data for further calculation), and so on with the next line until the end of the file. The difference is that using a while loop is a lot more efficient that loading the whole file into an array if you don't need to, especially when the file is large
Re^5: File handling basics
by vinoth.ree (Monsignor) on Jul 17, 2015 at 10:39 UTC

    Then replace the while loop with this code my @lines = <F>;

    open (F, $file) or die "cannot open file"; my @lines = <F>; close F;

    you can do the same with perl module File::Slurp

    use File::Slurp; my @array = read_file($filename);

    All is well. I learn by answering your questions...
Re^5: File handling basics
by ww (Archbishop) on Jul 17, 2015 at 16:17 UTC

    So what have you tried?

    Or did you confuse the Monastery with a Code-A-Matic machine?

    Downvoted the parent for lack of effort and a gimmé question.