2011-08-29 182 views
-3

我有两个阵列,我正在使用list::compare模块。第一个数组是阵列比较

@log, "$each_line[3]|$each_line[14]" 

第二个数组是

@log2 "$each_line2[3]|$each_line2[14]|$each_line2[37]" 

有没有什么办法让这些阵列匹配,并打印呢?

"$each_line[3]|$each_line[14]|$each_line2[37]" 
+3

是什么名单::比较有你的问题做。那些管道分离的字符串应该是数组中的单个示例元素吗?数组是否分类? @ log2中的元素总是与@ log1中的元素匹配? – ysth

+0

如果您可以显示完整的示例输入(将内容分配给@log和@log2的代码)以及您的预期输出,那将非常有用。 – ysth

+0

“@ each_line”是另一个数组,“@ log”和“@ log2”是否包含对其元素的引用? – TLP

回答

0

由于您没有说匹配是如何完成的,因此该示例似乎基本上是对应数组元素的“或”。

这样

my @array1 = split(/\|/, $string1); 
my @array2 = split(/\|/, $string2); 
my $length1 = scalar(@array1); 
my $length2 = scalar(@array2); 
my @new =(); 
my $max = $length1 < $length2 ? $length2 : $length1; 
for (my $index = 0; $index < $max; $index++) { 
    push @new, $index < $length1 ? $array1[$index] : $array2[$index]; 
}