You seem to be unaware of scoping. The best article I know about scoping is Coping With Scoping, which explains you all the stuff to know about global variables and lexical variables.

For the problem at hand, yes, declaring @log_lines via my is exactly what you need, because then, each reference taken to @log_lines will be unique and point to its own incarnation of @log_lines, which seems to be what you want as $self->{log_lines} seems to be intended to be an instance variable and not a class/package variable.

You also seem to have a misconception about how objects work in Perl, stemming from how you (don't) interpret scope. Variables declared via my are lexical variables that are only visible (under their name) within the closest set of enclosing curly braces ({}). An object usually is a (blessed) reference to a hash and you have to stuff all instance variables into that hash. The declaration in the constructor is not really related to that.


In reply to Re^3: Blessing object changes array attribute in array of arrays? by Corion
in thread Blessing object changes array attribute into array of arrays? by mclow

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.