So print "$! \n" if( $! ); is the line that prints the error message?
$! could be set by a whole lot functions, so the only way $! is useful is if you check it after each call (HTML::TextToHTML's job).
MJDsays "you can't just make shit up and expect the computer to know what you mean, retardo!"