In addition to checking open for errors, you should
check new HTML::Clean(...) for errors.
It's not well documented, but HTML::Clean's new
will return undef if it has trouble opening the
file you pass to it. (E.g. a "permission denied".)
my $h = new HTML::Clean($filename,9) or die "Couldn't load $filename:
+$!\n";