I came across this, expecting it to be a typo for $@:
use strict;
use warnings;
eval {
my $error = Not::Here->new();
};
warn @$;
And to my surprise it outputs this:
Can't locate object method "new" via package "Not::Here" (perhaps you forgot to load "Not::Here"?) at dollar_array.pl line 6. ...caught at dollar_array.pl line 9.
I'm unable to find any information about @$, and it's not listed on perlvar, nor in eval
Since the output show caught at ..., it seems that this is something in the exception handling of perl.