in reply to Hashrefs and arrayrefs

TMTOWTDI, as usual :) Change this:
push(@tmplt_list, \%info);
...to this:
push(@tmplt_list, {%info});
so that you push a reference to a copy of %info, not the real %info which you change on next iteration.