从子程序中调用多个数组

时间:2014-07-04 12:02:32

标签: perl

当我从子程序调用数组时,我只能打印第1节。 在子程序中,我能够打印所有记录但是当我在脚本上调用相同的数组时,我只能在输出之下。

@array = test();
DEBUG(Dumper(\@array);

2014/07/04 1:28:38 $VAR1 = [
          [
            'Router1',
            'Router2',
            'Router3',
          ]
        ];



sub test {      
    my @array;    
    for my $record (@array) {
        for my $value (@$record) {
            DEBUG("DEBUG: Value of array $value ");
        }
    }
    return (@array);
}

Dumper输出如下:

2014/07/04 1:28:38 $VAR1 = [
          [
            'Router1',
            'Router2',
            'Router3',
          ]
        ];
2014/07/04 1:28:38 $VAR1 = [
          [
            'Switch1',
            'Switch2',
            'Switch3',
          ]
        ];

2014/07/04 1:28:38 $VAR1 = [
          [
            'Switch11',
            'Switch21',
            'Switch31',
          ]
        ];

预期产出:

Router1
Router2
Router3
Switch1
Switch2
Switch3
Switch11
Switch21
Switch31

感谢。

1 个答案:

答案 0 :(得分:1)

您的子例程test声明一个空数组@array并将其转储。你将没有输出,因为它是空的。您在程序开头转储的数组是一个不同的数组