perl将变量赋值给具有关系的数组

时间:2014-06-24 08:42:30

标签: perl perlscript

请建议如何在关系数组中传递3个变量。

@item = ($a , $b , $c);
@record = push(@array, @item);

我想在@array中赋值,这样如果我查找任何实例,我应该得到所有a,b,c的值。

除了逗号之外还有什么方法可以在数组中赋值。比如$ a:$ b:$ c或$ a> $ b> $ c 我需要这个因为我想要记录1条记录(a)并得到(a:b:c)

@array1 = grep(!/$a/, @array);

expected output should be a:b:c 

谢谢,

1 个答案:

答案 0 :(得分:1)

问题不是很清楚。也许你应该改写它。 但是,我知道你想要一个包含三个元素组的数组。

您可能希望使用数组引用。

@item = ($a , $b , $c);
push(@array, \@item);

$item = [$a , $b , $c];
push(@array, $item);

此外,push不会像您期望的那样返回数组。 Perldoc说:

  

返回完成后数组中元素的数量   “推”。

现在,如果你想过滤这三个元素的组,你可以这样做:

my @output = ();
L1: foreach ( @array ){
    L2: foreach( @$_ ){
        next L1 if $_ eq $a; 
    }
    push @output, $_;
}

请注意,如果您想要完全匹配,则应使用eq运算符而不是正则表达式...