ah, found the problem - turns out that my above code was correct and is working as expected but expose_methods was only introduced two version ago in Catalyst::View::TT and my installed version was simply too old. I would still be interested to hear about ways of debugging something like this. Is there a way of making Catalyst throw an error if there is an unknown config option or if a function is called in a template that isn't defined?