diff --git c/lib/Exception/Base.pm w/lib/Exception/Base.pm
index 8dce19f..6eebfb0 100644
--- c/lib/Exception/Base.pm
+++ w/lib/Exception/Base.pm
@@ -1362,7 +1362,7 @@ sub matches { ## no critic qw(ProhibitExcessComplexity)
local $_ = ref $self->{$key} eq 'ARRAY'
? sprintf(
@{$self->{$key}}[0],
- @{$self->{$key}}[1..@{$self->{$key}}]
+ @{$self->{$key}}[1..$#{$self->{$key}}]
)
: $self->{$key};
if (ref $arrval eq 'CODE') {
@@ -1393,7 +1393,7 @@ sub matches { ## no critic qw(ProhibitExcessComplexity)
local $_ = ref $self->{$key} eq 'ARRAY'
? sprintf(
@{$self->{$key}}[0],
- @{$self->{$key}}[1..@{$self->{$key}}]
+ @{$self->{$key}}[1..$#{$self->{$key}}]
)
: $self->{$key};
@@ -1613,7 +1613,7 @@ sub _string_attributes {
my ($self) = @_;
return map { ref $_ eq 'ARRAY'
- ? sprintf(@$_[0], @$_[1..@$_])
+ ? sprintf(@$_[0], @$_[1..$#$_])
: $_ }
grep { defined $_ and (ref $_ or $_ ne '') }
map { $self->{$_} }