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

Re^2: Object singleton method

by sh1tn (Priest)
on Apr 22, 2008 at 07:42 UTC ( #682100=note: print w/replies, xml ) Need Help??

in reply to Re: Object singleton method
in thread Object singleton method

Thank you, nice article. All the examples for singleton point to class methods and not instance ones. I wanted something like:
my $obj1 = Class->new; my $obj2 = Class->new; # definition of singleton method for $obj1 goes here ... $obj1->singleton_method and print "It works.\n"; $obj2->singleton_method and print "It doesn't work.\n";

Replies are listed 'Best First'.
Re^3: Object singleton method
by Corion (Pope) on Apr 22, 2008 at 08:00 UTC

    I'm not sure what the benefit is of having objects that have the same class but have not all methods. Most likely, you could achieve what you want by overriding ->can and having the method fail for objects that are not the singleton object.

    Otherwise, you might want to look at classless objects:

Re^3: Object singleton method
by brian_d_foy (Abbot) on Apr 22, 2008 at 16:36 UTC

    Oh, you're not looking for singleton objects. You're looking for objects of the same class to have the same method names but do different things based on the object. Singletons aren't about the method names but how many objects there actually are.

    You have a bit of an XY Problem here since we don't know what you are trying to solve. What are you trying to accomplish (rather than how you are trying to do it)?

    If you want the objects to start off as the same class and specialize later, look at Class::Prototyped. Each object can start the same, but then gain or replace methods (called "slots" in prototype programming). Randal's CGI::Prototype stufff is based on this and once you get used to the idea it's very nice to work with given an appropriate problem.

    Good luck, :)

    brian d foy <>
    Subscribe to The Perl Review
      In Ruby's version of prototype based programming, slots are called singleton methods - this is perhaps what the OP was referring to.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://682100]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2018-08-14 06:42 GMT
Find Nodes?
    Voting Booth?
    Asked to put a square peg in a round hole, I would:

    Results (144 votes). Check out past polls.