I am processing html and xml retrieved via LWP::Simple Get() which returns the link contents to me in a scalar. I then process the $html/$xml, checking for changes and/or making changes as required.

So, the scalars are not HUGE by todays standard. They are in the 40-64K size on average with some upto several hundred Kb. The problem is more about the fact that I am working through 100s to 1000s.

Anyhow, one process I ran took over 13 hours to complete, which is hard to live with. So, I am looking to speed things up.

One of the things I went looking for (among others) was to see if I was making unnecessary copies of data. Being new to perl I was not sure how arguments were passed to subroutines i.e. by value or by reference (aka ptrs).

I found a statement in a book on Perl that says "When you pass scalars to subroutines they are passed by reference,... which acts like the address of the scalar.". The books also says that arrays etc. are copied into @_.

Hummm, I thought, I need to look into what's going on here. Which is in part what prompted my questions. Thanks in advance for any insights.


In reply to Re: Re: Memory Use and/or efficiency passing scalars to subs by knexus
in thread Memory Use and/or efficiency passing scalars to subs by knexus

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.