eval { open(XMLFILE, '<:encoding(utf16)', $logfile) or die $!; }; if ($@) { # whatever will match your error message, # just skip the file. next if $@ =~ /^:BOM error/; # unexpected message, bail out. die $@; }