Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Re:{3} Eval and $@% ...

by srawls (Friar)
on Jun 19, 2001 at 05:11 UTC ( #89534=note: print w/replies, xml ) Need Help??

in reply to Re:{3} Eval and $@% ...
in thread Eval and $@% ...

Look at perlref. GLOBs are Handles in general, so read them in array context with brackets like I did.

Only when used as a filehandle. For a variable name there is a scalar ($), a list (@), a hash (%), a filehanlde, and a format. Instead of saying:

$foo=$bar; @foo=@bar; %foo=%bar;
you can just say:
*foo = *bar;
So, when you dereference a type glob, you don't add the <foo> unless you are reading from a file handle.

The 15 year old, freshman programmer,
Stephen Rawls

Replies are listed 'Best First'.
Re: Eval and $@% ...
by Abigail (Deacon) on Jun 19, 2001 at 09:56 UTC
    No, you can't "just say" that
    $foo=$bar; @foo=@bar; %foo=%bar;
    *foo = *bar;
    are equivalent. The first set of assignments sets $foo, @foo and %foo from the values of $bar, @bar and %bar, and that's it. If you later assign to $bar or $bar [3], $foo and $foo [3] remain unchanged. However, with the glob assignment, $foo, @foo and %foo become aliases for $bar, @bar and %bar. Modifications of the one are reflected in the other.

    -- Abigail

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://89534]
[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
[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 ;)

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2017-05-29 07:56 GMT
Find Nodes?
    Voting Booth?