use constant HAS_HTML_TIDY => do {
local $@;
eval { require HTML::Tidy; 1 } or do {
unless ( eval { require XML::Clean; 1 } ) {
die( "Please install HTML::Tidy (preferred) or XML::Clean first" );
}
0; # Has XML::Clean but no HTML::Tidy
};
};
...
sub parse_file {
...
if (HAS_HTML_TIDY()) {
}