X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=lib%2FFile%2FKDBX%2FError.pm;h=6ea064970b850d4f893abbe8cf540b55e1fb518c;hb=cfadf8415f8ffe74c0d1f8d890dc1c155cfecd4f;hp=f80155796f4ae40e8d17afcda9dd8b0c8bdfce39;hpb=b0afc7004220cc502ea07ab8d2555b8fcd2a11d5;p=chaz%2Fp5-File-KDBX diff --git a/lib/File/KDBX/Error.pm b/lib/File/KDBX/Error.pm index f801557..6ea0649 100644 --- a/lib/File/KDBX/Error.pm +++ b/lib/File/KDBX/Error.pm @@ -78,10 +78,11 @@ as a B. Example: =cut sub error { + my $class = @_ && $_[0] eq __PACKAGE__ ? shift : undef; my $self = (blessed($_[0]) && $_[0]->isa('File::KDBX::Error')) ? shift - : (@_ && $_[0] eq __PACKAGE__) - ? shift->new(@_) + : $class + ? $class->new(@_) : __PACKAGE__->new(@_); return $self; }