请建议如何在关系数组中传递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
谢谢,
答案 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
运算符而不是正则表达式...