Yes, closures are how Sub::Exporter works. Moose uses Sub::Exporter under the hood to export its has, extends, etc keywords. has, extends, etc are all closures. Catalyst is Moose-based. You use Catalyst; you're using closures.
Catalyst is Plack-based. Plack is an implementation of the PSGI spec. Under PSGI all web apps are closures. You use Catalyst; you're using closures.
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
| [reply] [Watch: Dir/Any] [d/l] [select] |