Re: opening a big file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2008-04-06 at 22:36 -0400, Richard Lee wrote:
> I am trying to open a big file and go through line by line while 
> limiting the resource on the system.
> What is the best way to do it?
> 
> Does below read the entire file and store them in memory(not good if 
> that's the case)..
> 
> open(SOURCE, "/tmp/file") || die "not there: $!\n";
> while (<SOURCE>) {
> ## do something
> }

The above code will read the file one line at a time.  It is recommended
that you use the three-argument open statement.  (See `perldoc -f
open`).

open( SOURCE, '<', "/tmp/file" ) || die "cannot open /tmp/file: $!\n";
while (<SOURCE>) {
  # do something
}

> 
> sometime ago I saw somewhere it had something like below which look like 
> it was reading them and going through line by line without storing them 
> all in memory.
> I just cannot remember the syntax exactly.
> 
> open(SOURCE, " /tmp/file |") || die "not there: $!\n";
> while (<>) {
> ## do something
> 
> }

This syntax is is used for reading the output of another command.  It is
not recommended because your program would not be portable across
operating systems.  But sometimes you have no choice.

open( SOURCE, '-|', "command" ) || die "cannot pipe from command: $!\n";
while (<SOURCE>) {
  # do something
}

Also see `perldoc IPC::Open2` and `perldoc IPC::Open3`


-- 
Just my 0.00000002 million dollars worth,
    Shawn

99% of you are just big dumb apes!

+------------\
| Shangri La   \
| 40,000 KM     /
+------------/


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux