While we're here, sulferic, you might want to note that you can use other characters than / when doing "$x =~ s///" -- you can use # or ! or | and so on, which makes it a lot easier when replacing involves HTML. Also you seem to be under the impression that you need to escape HTML brackets and quotes with preceding slashes, but you don't.
Your line:
$message =~ s/:\)/\<img src=\"$imagedir\/smiley.gif\"\>/g;
could just be
$message =~ s#:\)#<img src="$imagedir/smiley.gif">#g;
or
$message =~ s{:\)}
{<img src="$imagedir/smiley.gif">}g;
Every bit of code is either naturally related to the problem at hand, or else it's an accidental side effect of the fact that you happened to solve the problem using a digital computer.
M-J D