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.