in reply to sub Prototype Syntax

I think 5.12 added a warning about the unbackslashed @ and % prototypes eating up the rest of the arguments, but the bug is in the code you posted.

The solution (as usual) is to avoid the use of prototypes. They don't do anything for you in this case. You're fine using:

sub POPULATE_TEMPLATE { ... }

... and you might as well get rid of the leading ampersand on the function calls (which bypass prototypes anyhow):

DISP_HTML( POPULATE_TEMPLATE( READ_RECORD("/var/www-ssl/html/dartcart/o_summary.html"), \%in))

Improve your skills with Modern Perl: the free book.