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

Re^2: Simple question about Inside-Out objects

by blazar (Canon)
on Mar 13, 2007 at 20:10 UTC ( #604672=note: print w/replies, xml ) Need Help??


in reply to Re: Simple question about Inside-Out objects
in thread Simple question about Inside-Out objects

refaddr() is used to be entirely agnostic about the bless status of an object.

Speaking of which (and I'm replying to you but ideally to all those who kindly answered my question, whom I thank), I was thinking that perhaps it would be nice if standard ref, just like so many functions, returned something different in list context, i.e. something like: REF, ADDR, BLESSED, where

  • REF would be ref()'s current output if the reference is not blessed, and if it is then the same as if it were not,
  • ADDR the same as refaddr()'s and
  • BLESSED the package the reference is blessed in, if it is, or undef otherwise.

But I suppose that such a beast would risk of breaking too much existing code...

Replies are listed 'Best First'.
Re^3: Simple question about Inside-Out objects
by diotalevi (Canon) on Mar 14, 2007 at 04:44 UTC

    Interestingly enough... UNIVERSAL::ref would allow you to override ref for some objects. There's no such thing as ref() in list context right now though.

    ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://604672]
help
Chatterbox?
[Corion]: But now I want to register a one-shot for two events, of which only one will arrive, so my data structure doesn't work anymore...
[Lady_Aleena]: Corion, ouchy.
[Corion]: (maybe I should write this up as a SoPW) - currently, the "most efficient" data structure I come up with is a single array which I scan for the first fitting one-shot. Not efficient but I don't expect more than five outstanding one-shots anyway
[choroba]: can't you create a meta-key corresponding to the disjunction of the events?
[robby_dobby]: Corion: Heh. This whole thing smells of Strategy Pattern or MVC pattern.
[Corion]: And performance linear to the number of registered one-shots doesn't feel that bad. Maybe I should collect statistics on how many callbacks are outstanding ;)
[Corion]: choroba: Yes, but the longer I thought about efficient hashes mapping the event type back to their callbacks, and how to keep them in sync, the more I thought that all that optimization might just not be worth it, even if it's horribly inelegant
[Lady_Aleena]: My biggest problem with hashes at the moment is one with 2,501 keys.
[choroba]: how many event types are there?
[Corion]: Also I found that I can't conveniently weaken an array slot, which also is inconvenient, as I want my one-shots to disappear if the caller discards them

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2017-05-29 07:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?