习题,接着就迎来了强烈的挫败感啊

题目是``编写一个交换两个数组的子过程'',好吧,我冥思苦想的糟糕代码如下
[perl]
use strict;
use warnings;
my @st = qw(I have a dream);
my @nd = qw(Do you have dream);
print "first array: @st\nsecond array: @nd\n";
sub swap_array(\@\@) {
my $first = shift;
my $second = shift;
my $i = 0;
my $t;
foreach my $elt (@{$first}) {
$t = $$first[$i];
$$first[$i] = $$second[$i];
$$second[$i] = $t;
$i++;
}
}
swap_array(@st, @nd);
print "First array: @st\nSecond array: @nd\n";
[/perl]
我知道各位大神一定有更好的方法的,请告诉我以让我死个明白慷慨就义吧
