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
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.