Maybe tie is completely the wrong thing to use here. If so what should I do?
It is indeed the wrong thing to do. What Tie::File
does is provide an array interface to a file on disk. You can use huge files as an array because Tie::File
only holds a part of the file in memory, swapping other parts in and out as necessary.
In your code I see the comment
# I am guess that the script is dying because
# this will use up too much virtual memory and
# the OS (Window XP) kills the script.
Your first task is to find out why
it is taking up so much space. Use the debugger to step through you program and see where it fails.
Just assuming that something is wrong somewhere without determining the exact cause but throwing some code at the problem is not going to fix your program.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link
or How to display code and escape characters
are good places to start.