配列を2つ渡すと、一つになっちゃうんですが、なんとかなりませんか?

(@a, @b) = &sub(@a, @b);

sub a {
 my (@a, @b) = @_;

return @a, @b;
}

ってすると、@aだけになっちゃうんですけど。
リファレンス使う方法しかないかな?