Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Operator overloading with returning lists?

by diotalevi (Canon)
on Nov 30, 2008 at 08:13 UTC ( #726882=note: print w/replies, xml ) Need Help??


in reply to Operator overloading with returning lists?

If your overloaded function was written in XS, I could imagine it might be possible to ignore the context and foricibly return multiple things. Just push everything onto the stack even though you're always in scalar context.

⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

  • Comment on Re: Operator overloading with returning lists?

Replies are listed 'Best First'.
Re^2: Operator overloading with returning lists?
by JavaFan (Canon) on Dec 01, 2008 at 16:56 UTC
    I don't think that will work if the caller expects just one return value.

      I'm just saying it's theoretically possible to violate your caller this way even if it wasn't expecting it.

      ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

        The problem is that if your XS pushes multiple things on the stack, and the caller expects just one, the caller will pop up just one thing of the stack, leaving the rest there.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://726882]
help
Chatterbox?
[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
[Corion]: choroba: Currently two or three that my program handles (WWW::Mechanize:: Chrome), but there might be more that become interesting
[Corion]: But I don't expect more than 100 to be active at the same time, so I'm not really sure if there is a not-too-fancy data structure that is maintained with few lines of code where the performance is better than the linear scan ;)
[Corion]: But I should do a mock-up program so that others can see what I'm talking about ;)
[robby_dobby]: Corion: I hope you know all too well that passing around "fancy" datastructures is a recipe for disaster :-)
[robby_dobby]: As in, it's-too-fancy- that-it-will-be- messy-to-handle
[choroba]: bit vectors as keys?

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