Alright, but it's big

(If you find something I could change to make it faster/cleaner please tell me, but try to stick to the problem I'm getting)
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
require TripodCGI;
require TripodDate;
$CGI = new TripodCGI;
$DATE = new TripodDate;
$today = $DATE->currentDate();
$news = $CGI->param('news');
$pass = $CGI->param('pass');
$action = $CGI->param('action');
$graybg = '<style fprolloverstyle>A:hover {color: #FFFFFF}</style>'
.'<style><!--A{text-decoration:none}--></style>'
.'</head>'
.'<body text="#000000" bgcolor="#C0C0C0" link="#000000" vlink="#000000" alink="#000000">';
$whitebg = '<style fprolloverstyle>A:hover {color: #000000}</style>'
.'<style><!--A{text-decoration:none}--></style>'
.'</head>'
.'<body bgcolor="#FFFFFF" text="#000000" link="#666666" vlink="#666666" alink="#666666">';
my $webmaster = 'tbad1986@yahoo.com';
my $newsfile = 'file.txt';
my $SEPARATOR = "Ð";
my %TRUSTED = (
I have this setup, but don't want people to see it.
#This is option 1A, posting news.
if ($action eq "post"

{
if ( $pass eq "" || $news eq "" ) {
errors( "Sorry, but you left a field blank.",
"Please press back on <b>your browser</b> and fill it in!" );
}
elsif ( defined $TRUSTED{$pass} ) {
my $handle = $TRUSTED{$pass}->[0];
my $email = $TRUSTED{$pass}->[1];
open(OUTF, ">>$newsfile"

or errors("Can't open database! Please contact the website admin!"

;
print OUTF join($SEPARATOR, $handle, $email, $news, $today), "\n";
close (OUTF);
print <<End;
<title>news submitted</title>
$whitebg
<center><b>Your news has been submitted $handle</b><br><br><br>
<br><b>Date:</b> $today
<br><b>This was submitted:</b> $news
<br><br><br><a href="">Go Back to the Member's Page</a></center>
End
}
else {
errors( "Sorry, but you do not seem to have the right password.",
"If you're a member please contact MooMan to get a password"

;
}
}
#This is option 1B, viewing the news.
elsif ($action eq "news"

{
open(INF, $newsfile)
or errors("Sorry, but their was an error. Please contact the website admin!"

;
my @news = reverse( <INF> );
close INF;
print <<End;
<link rel="stylesheet" type="text/css" href="
<title>news</title>
End
foreach $line (@news) {
($handle,$email,$news,$today) = split(m/$SEPARATOR/, $line);
print <<End;
$graybg
<center>
<table border="1" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber4" bgcolor="#666666">
<tr>
<td width="50%" bordercolor="#666666">
<font color="#000000"><small>posted by:</small> <a href="mailto:$email">$handle</a>
</font></td>
<td width="50%" bordercolor="#666666">
<p align="right">
<font size="2" color="#CCCCCC">$today</font></td>
</tr>
<tr>
<td width="100%" colspan="2" bgcolor="#FFFFFF">
<p align="center">$news</td>
</tr></center></table><br><br>
End
}
}
# Error Sub
sub errors {
my($error) = @_;
print <<Error;
<title>error</title>
$graybg
<center><h2>error</h2><br>$error<br></center></td>
Error
}
print <<End;
</table>
</body>
</html>
End