Perl:打印传递给子例程的数组名称

时间:2014-02-13 02:26:40

标签: arrays perl

将一个数组和一个标量传递给函数以检查该值是否为数组的一部分,以防它不是部分,然后推送到数组。为了参考目的,它必须显示的是在推动它时必须显示数组的名称。这是我的代码

use v5.10.1;
use strict;
use warnings;

my @ARRAY1 = qw/This is array of backup /;
my @ARRAY2;


my $value = "version.xml" ;


sub CheckPush($$)
{

my $val = shift (@_);
my $array_ref= shift (@_);

     unless ($val ~~ @$array_ref )
     {
        print "$val is going to push to array  \n";
        push(@$array_ref,$val);
     }   
return (@$array_ref);
} 

@ARRAY1 = CheckPush($value,\@ARRAY1);
print "out \n";
foreach $_ (@ARRAY1) {
print "$_ \n";
}

@ARRAY2 = CheckPush ($value,\@ARRAY2);
print "out2 \n";
foreach $_ (@ARRAY2) {
print "$_ \n";
}

输出应该如下

$val is going to push Array (@ARRAY1)
$val is going to push Array (@ARRAY2)

1 个答案:

答案 0 :(得分:1)

传递数组的名称和引用;这并不难。

人们使用源过滤器或PadWalker :: var_name做这样的事情,但这不是一个好主意。