in reply to Global vs. local?

This isn't a reply to what you asked for, but the old event model is really tiresome. One ends up generating a bunch of global (named) subroutines just as you do. So now that you have the closure working and found enlightenment, perhaps you should see if you can use the new event model (NEM). It's not that well documented I believe, but basically your subroutines sub NAME_EVENT { ... } can be replaced with -onEVENT => sub { ... } when you create the component called NAME.

I don't know which components support the new event model or which events for those components that have a NEM callback.