in reply to Constant variables

Besides your problem (which, as Abigail-II notes, is not apparent from the piece of code you posted), that is a horrible construct - flag variables like $errorcount are a red flag, as are collections of $foo_bar, $foo_baz, $foo_quux variables. An initial cleanup leads to:
sub print_error { my $message = shift; print "<br><font color='red'>$message</font>"; # etc.. } unless($title and $url and $description and $keywords) { $title or print_error "Please enter a title."; $url or print_error "Please enter a valid address."; $description or print_error "Please enter a description."; $keywords or print_error "Please enter some keywords."; # ... }

You could still do a lot better if $title, $url etc where all stored in a hash. See Mark-Jason Dominus' excellent Program Repair Shop and Red Flags article series on Perl.com.

Update: thanks to The Mad Hatter for catching a small mishap. (s/$shift/\$message/)

Makeshifts last the longest.