I'm a bit confused. Several people have suggested you read in the file line-by-line. And now you come with sysread. It will work with sysread, but not the way you do - because if you sysread halfway in a word (so the other half will be read in the iteration), you'll count a word twice. You would need to keep track of what was at the end of the previous read, and compare that with what's at the beginning of the next read.

So, why can't you process the file line-by-line?

You also say "I need to store $buffer in an array and then process it word by word". Why, oh why? It's certainly not going to solve your out of memory error. As people have indicated, that's where the root of your problem is - trying to store everything in memory.

I suggest you either follow the given advice, or you buy some more memory, because you will need to buy more if you insist of storing the entire file in memory. And keep some cash ready, you need to buy more if your file increases.

Abigail


In reply to Re: Out of memory by Abigail-II
in thread Out of memory by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.