use CGI; use HTML:Template; # .. then initialise $q and get input so we know what to do sub Send_Header { my $header_tmpl = HTML::Template->new( filename => 'header.tmpl' ); $header_tmpl->param( header => shift, to => shift, date => substr(scalar gmtime time, 0, 10), subject => shift, ); print $header_tmpl->output(); } print $q->header(); print $q->start_html( -title => $title, -style => {'src' => '../styles/main.css'}, ); Send_Header($header,$user,$subject) # rest of message goes here