Note that since you can (but perhaps shouldn't) do this:
print "saved data to @{ [ $response->filename ] }\n";
This takes advantage of two things:
  1. Embedding an array in a quoted string causes the elements to all be interpolated, with the default array separator between them (set to one space when your script starts, but changeable if you like).
  2. Putting a method call inside an anonymous list constructor calls the method in list context and then uses the returned value(s) to create the anonymous array.
So what @{ [ $obj->method ] } does is
  1. Call the method, getting a list of zero or more values back
  2. Produce a reference to an anonymous array
  3. Immediately dereference the array reference, producing an array consisting of the values returned from the method
  4. Interpolate the array into the string, thereby embedding the return values from the method call into the string
Why would you not do that? Well, it's not exactly straightforward, to start with, and there's a perfectly reasonable way to do it without the arcane interpolation. I have used it on occasion when it improved readability, but it's probably not a good habit to get in to.

In reply to Re: Addressing object variables by pemungkah
in thread Addressing object variables by Anonymous Monk

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.