No, that doesn't have the same bug. The bug in the other code
was because the join was done on the empty string, which makes
the list (3, 5, 7) collapse to "357". When you quote an array,
the implicit join is done on the special character $", which by
default is a space. So:
my @a1 = qw/357/;
my @a2 = qw/3 5 7/;
print "@a1\n";
print "@a2\n";
Gives
357
3 5 7
Different strings.
You could change $" to be something weirder when doing the
comparison; something less likely to be found in a string
normally. Like $;:
sub areq {
local $" = $;;
"@{$_[0]}" eq "@{$_[1]}";
}