opening a file in perl

Anthony David adavid at adavid.com.au
Wed May 1 10:59:03 EST 2002


Nemo - earth native <nemo at cheeky.house.cx> writes:

> Hi guys, a quick question for the perl guru's around... 
> 
> I've a small script which opens a file, reads through it looking for
> various information, uses that to calculate some figures, and closes.
> 
> Pretty simple stuff. 
> 
> ...except when the file being opened is the better part of 400meg,
> and so I get Out of Memory errors - the perl seems to wants to read the
> whole file into memory before looking at it at all.
> 
> At the moment is opens the file as such:
> 	open( IN, "chunk.txt" ) or die "Hrm. Couldn't open the file./n";
> 
> And then just runs through line by line:
> 	foreach my $line ( <IN> )
> 	{
> (insert a few possible regexp matches in `if` statements here. simple stuff)
> 	}
> 
> So, how do you get perl to not load the whole file into memory?
> 

Read the file one line at a time instead of sucking it into a list.

while (<IN>) {

}



-- 
Anthony David

Gambling(n): A discretionary tax on those asleep during high school maths
http://adavid.com.au/
0xA72CE1ED fingerprint = EA1E C69E FE59 BBE1 AA4B  F354 BD09 9765 A72C E1ED




More information about the linux mailing list