The way I normally do it, is use
HTML::Template, so you have a Error page template, then just load error message into it.
Template:
<hmtl>
<head>
<title> Error <!-- TMPL_VAR NAME="err" --></title>
</head>
<body>
<H1>Error <!-- TMPL_VAR NAME="err" --> Occured</H1><BR>
Explanation: <!-- TMPL_VAR NAME="Explain" -->
</body>
</html>
Perl Code:
use strict;
use CGI;
use HTML::Template;
my $cgi = new CGI;
my $template = HTML::Template->new(
filename => 'error.tmpl',
associate => $cgi,
die_on_bad_params => 0
);
my $explanation = &get_explanation($cgi->param('err'));
$template->param(Explain => $explanation);
print $cgi->header(), $template->output();
sub get_explanation{
my $err = $_[0];
##Get Explanation
}