Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^2: Question about __PACKAGE__

by sman (Beadle)
on Jan 22, 2010 at 03:06 UTC ( #818875=note: print w/replies, xml ) Need Help??


in reply to Re: Question about __PACKAGE__
in thread Question about __PACKAGE__

Do you mean these four lines belonged to Foo are calling class method instead of object method? Therefore no object is created by them, right?
__PACKAGE__->hello('test1'); Foo->hello('test2'); hello(__PACKAGE__, 'text3'); hello('Foo', 'text4');
However, if I call this line:
Foo->new()->hello('test5');
one object will be created. Am I right so far?
Thanks.

Replies are listed 'Best First'.
Re^3: Question about __PACKAGE__
by ikegami (Pope) on Jan 22, 2010 at 07:15 UTC
    Yes. Mind you, in practice, hello is probably only suppose to called one of the two ways.
Re^3: Question about __PACKAGE__
by gam3 (Curate) on Jan 22, 2010 at 12:24 UTC
    It is important to note that Perl OO does not have any "built in" concept of data. There is no default Constructor and the Destructor consists of a call to DESTROY.

    It might be more descriptive to rewrite Foo->new()->hello('test5'); as

    bless(\sub {}, 'Foo')->hello('test5');
    This just blesses a CODE_REF for fun. It could be a HASHREF or some other REF. The only real difference between
    'Foo'->hello()
    and
    bless(sub {}, 'Foo')->hello()
    Besides the fact that the blessed version can contain data, is that just before the blessed object is Garbage Collected, DESTROY is called with it as the argument ($x->DESTROY). UNIVERSAL contains a DESTROY method, so it always exists.
    -- gam3
    A picture is worth a thousand words, but takes 200K.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://818875]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2021-03-06 00:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favorite kind of desktop background is:











    Results (115 votes). Check out past polls.

    Notices?