Who knows whether $foo->new creates a new, empty object of the same class or a complete copy of $foo. It's not clear unless you read the docs or the source code.
Well, unless you read the docs or the source code, you don't know whether
Class->new
returns an object of class Class, or something else.

Or more generally, unless you read the docs or the source code, you don't know what random_function or random_method is going to return anyway.

OTOH, I've yet to encounter code where

Class->new
isn't a constructor of the class Class, or to encounter code where
$foo->new
was called, and it returned something else than (ref $foo)->new.
Good OO programming practice is that class methods and object methods should be distinct. I think that it's a shame that common Perl practice seems to be to ignore that practice as it makes OO programming in Perl seem more complex than it needs to be.
Man, of all the problems of doing OO in Perl, the lack of separation between class and object methods looks incredibly minor to me.

In reply to Re^6: bless with => separated args by Anonymous Monk
in thread bless with => separated args by jaa

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.