I'll put in another vote for PDF::Reuse. It's lightweight from the perspective of:
- few dependencies
- quick to load
- very fast at runtime
- API is small
The interface is nothing like Template Toolkit. Instead you call functions to select a font and then write text to particular X, Y coordinates. The text can be aligned left, right or centered but if you need to wrap text in a box then you'll have to do the hard work yourself - which might make a different module a better choice. Also if you want to draw lines or boxes then the API really just lets you inject the relevant raw PDF commands - which some people might consider a negative.