Jeff Westman wrote:

> I'm trying to help out another developer with a mini-Perl script.
> He has a file that contains one very long line, about 28M in size.
> He needs to do a replacement of all occurances of
> 
>     |^NEWLINE^|^
> 
> to a literal newline (HPUX, 0x0a or "\n").
> 
> When I ran this
> 
>    $ perl -ne 's/|^NEWLINE^|^/\n/g;print' loadFile
> 
> it choked and gave me
> 
> Out of memory during "large" request for 1073745920 bytes, total
> sbrk() is 604078796 bytes at -e line 1, <> line 1.
> 

if your system do not have memory to read in large chunk, you can easily 
break the chunks up by reading smaller chunks to process. for example, the 
follwoing reads 4k a time and process them:

[panda]# perl -ne 'BEGIN{$/=\10} s/\|\^NEWLINE\^\|\^/\n/g; print' loadFile

david
-- 
sub'_{print"@_ ";* \ = * __ ,\ & \}
sub'__{print"@_ ";* \ = * ___ ,\ & \}
sub'___{print"@_ ";* \ = * ____ ,\ & \}
sub'____{print"@_,\n"}&{_+Just}(another)->(Perl)->(Hacker)

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to