use strict; BEGIN {   package Error;   my @ErrorDefinitions = qw/      LOGINFAILED   /;   for my $i (0 .. $#ErrorDefinitions) {      eval "use constant $ErrorDefinitions[$i] => '$ErrorDefinitions[$i]';";   }   1; } package Error; my %RaisedErrors = (); sub raise {  my ($errid, $errmsg) = @_;  exists $RaisedErrors->{$errid} || $RaisedErrors->{$errid} = [];  push @{$RaisedErrors->{$errid}}, {MSG => $errmsg} if $errmsg; } sub to_html_template {   my ($tpl) = @_;   while(my($key, $val) = each %RaisedErrors) {      $tpl->param("ERROR_$key" => 1);      $tpl->param("ERROR_$key_msg" => $val;   } } 1;