in reply to Why are closures cool?

Closures are cool because they allow for a different way of programming. Three sample uses of closures that I have done are ReleaseAction, Re (tilly) 1 (perl): What Happened...(perils of porting from c), and Why I like functional programming (long). What ties these together is the idea of having a general purpose hook called a "handler". The handler can do pretty much anything you want, and that allows you to separate your flow of control logic from the setup of all of your special cases.

For more on that try a Super Search on "functional programming". Another thing to do is think through the concept of a "dispatch table", where you try to replace complex (and possibly repetitive) logic with a lookup in a hash and then dispatch to your case. For a random example take a look at (tye)Re: How to build a real multi-level dispatch table.