in reply to Strings with undefined variables?

I made this module String::Interpolate::Delayed which does pretty much exactly what you want. It's an experimental proof of concept thing though, and choroba's answer is your best bet.