in reply to A few questions

\@ is usefull if you need an array of arrays. eg:
my @x = (1, 2, 3, 4); my @y = ();
and
push @y, \@x;
instead of
push @y, @x;
because the later will push the elements of @x onto @y, not @x itself. the same is true for \% of cause. to get the array out of the array of arrays again:
$z = pop @y; @x = @{$z}; # or @$z

for more information on "strange" looking variables look at man perlvar and man perldata