Once perl has used some system memory for something, you'll be damm lucky if you get it back for other processes to use until perl exits. undef'ing a variable will return the memory used by that variable to perl, so it won't need to eat any more memory the next time it needs some.
This is one of the reasons why eating a whole file into memory is a bad thing, even if you throw it away soon after doing so.
If avoiding memory bloat is important, then you'll need to design an algorithm which doesn't use much in memory storage. Working on small chunks of data and saving the results to a file, then at the end of your program taking the saved results and putting them together into your final answer. Also consider using DB_File, although remember that disk access is much slower then RAM access.
-
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>
<u> <ul>
-
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
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|