I didn't realise HTML::Template::param took two arguments
firstly) because I was not aware of the functionality of '=>' and that it was actually passing two parameters and not one.
secondly) because every example I have ever seen that taught me to use it was of the form 'variable => value'.
Simple problem, simple solution - All in a day's learning.