Is there ways to release memory in perl?
That depends what you mean by the question. If you mean "give back to the OS", the answer is, no, on most OSses. And if it happens, it's not really under your control. If you mean "let Perl reuse memory I no longer need", then Perl is already doing so, if and only if it can figure out you're not going to need the memory again. And Perl figures this out by keeping track of the number of references a piece of data has - as long something is pointing to it, Perl will keep it. So, make your variables lexical, and give them small scopes. When they drop out of scope, Perl will resue their memory.

Of course, if you are using a bad algorithm, like slurping in an entire file in an array, when all you need is to inspect the file line-by-line, you will run out of memory because your program claims all that memory. They only way to deal with it is by using a better algorithm - like reading in the file line-by-line.


In reply to Re: out of memory problem by Anonymous Monk
in thread out of memory problem by EchoAngel

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.