The prototype ($@) is very mis-leading. It means one parameter in scalar context followed by a list which could be empy. It does not mean a scalar followed by an array
my @fred = qw (The quick brown fox);
sub mysub ($@) {
print "@_\n";
}
mysub(@fred)