Problem with upload.cgi script

Hi. I've used the upload.cgi script found on the SitePoint website.  I set the upload directory pathon the html document and upload.cgi as instructed, Changed the chmod permissions on the cgi-bin to 777 and upload.cgi to 755.  I also created a thanks!html and an error.html which I uploaded to my root folder with the file_upload.html but cannot get the script to work.  I've had other people  look at what I've done and the only comment they've come up with is that there is an error with the coding of the upload.cgi script. They agree that I've copied the upload.cgi script exactly and haven't left anything out or included anything I shouldn't have.  I keep getting the following error:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Many thanks, Cindi
Hi. This is the script

#!/usr/bin/perl -wT use strict; use CGI; use CGI::Carp qw ( fatalsToBrowser ); use File::Basename; $CGI::POST_MAX = 1024 * 5000; my $safe_filename_characters = “a-zA-Z0-9_.-”; my $upload_dir = “/home/mywebsite/htdocs/upload”; my $query = new CGI; my $filename = $query->param(“photo”); my $email_address = $query->param(“email_address”); if ( !$filename ) { print $query->header ( ); print “There was a problem uploading your photo (try a smaller file).”; exit; } my ( $name, $path, $extension ) = fileparse ( $filename, ‘\…*’ ); $filename = $name . $extension; $filename =~ tr/ /_/; $filename =~ s/[^$safe_filename_characters]//g; if ( $filename =~ /^([$safe_filename_characters]+)$/ ) { $filename = $1; } else { die “Filename contains invalid characters”; } my $upload_filehandle = $query->upload(“photo”); open ( UPLOADFILE, “>$upload_dir/$filename” ) or die “$!”; binmode UPLOADFILE; while ( <$upload_filehandle> ) { print UPLOADFILE; } close UPLOADFILE; print $query->header ( ); print <<END_HTML; <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “DTD/xhtml1-strict.dtd”> <html xmlns=“” xml:lang=“en” lang=“en”> <head> <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8” /> <title>Thanks!</title> <style type=“text/css”> img {border: none;} </style> </head> <body> <p>Thanks for uploading your photo!</p> <p>Your email address: $email_address</p> <p>Your photo:</p> <p><img src=“/upload/$filename” alt=“Photo” /></p> </body> </html> END_HTML