Perl 函数中传递数组应用

Perl函数中若要传递一个数组,可以通过引用来传递更方便:
如果在参数中传递两个数组的时候,会出现一些问题。
sub test{
    my(@a,@b) = @_;
}
@array_1 = qw(a b c);
@array_2 = qw(d e f);
test(@array_1, @array_2);
上面这段代码我们是想把@array_1 会赋值给@a,@array_2赋值给@b,但其实不是那样的。
在调用test(@array_1, @array_2)的时候,其把参数@array_1 和 @array_2被放到单个数组@_中。
这样在test函数内部,就会把@_赋值给@a,即两个数组都赋值给@a了。
为了解决这个问题,我们可以传递数组引用:
即没有必要传递整个数组,只要传递相关数组的引用就可以了。
sub test{
    my($a,$b) = @_;
}
@array_1 = qw(a b c);
@array_2 = qw(d e f);
test(\@array_1, \@array_2);
此时函数test()总是接收两个值,即两个引用.下面就可以遍历两个数组了:
$count=1;
while($count<=$@a){
print("element$count:$@a[$count-1]\n");
$count++;
}
note:当你将对标量、数组或哈希结构的引用作为参数传递给函数时:
当你传递引用时,函数能够对引用指向的原始数据进行操作

你可能感兴趣的:(array,perl,sub)