diff --git a/lib/AccountManager/Metadata.pm b/lib/AccountManager/Metadata.pm index f5d6a678f76c62ef74ba8fdf4e6e067487e07405..6be11388a3f1e1e7913717e9cc280fa3a770f0a1 100644 --- a/lib/AccountManager/Metadata.pm +++ b/lib/AccountManager/Metadata.pm @@ -3,6 +3,7 @@ package AccountManager::Metadata; use Mojo::Base -base; use English qw(-no_match_vars); +use Syntax::Keyword::Try; use XML::LibXML qw(:libxml); sub new { @@ -13,8 +14,11 @@ sub new { die "non-readable file $args{file}" unless -r $args{file}; my $doc; - eval { $doc = XML::LibXML->load_xml(location => $args{file}); }; - die "Failed to parse file: $EVAL_ERROR" if $EVAL_ERROR; + try { + $doc = XML::LibXML->load_xml(location => $args{file}); + } catch($error) { + die "Failed to parse file: $error"; + } my $root = $doc->documentElement(); my $type = $root->nodeName();