【发布时间】:2010-11-07 01:53:11
【问题描述】:
我是这个领域的新手。所以请对我放轻松。我有两个数组:
@array1 = ("ABC321", "CDB672", "PLE89",....);
@array2 = ("PLE89", "ABC678", "LMD789",...);
我想比较这两个不同数组的元素。但是,我只想用字母匹配字母。例如,如果比较数组,$array[2] 元素 (PLE) 应该与 $array2[0] (PLE) 匹配,同样$array1[0] (ABC) 应该与 $array[1] (ABC) 匹配。我可以一次做一个,但不能同时比较两个数组的所有元素(即循环数组)。
my ($value1)= ($array[2]=~ /([A-Z]+)[0-9]+/);
print "Value1: $value1 \n";
my ($value2)= ($array[0]=~ /([A-Z]+)[0-9]+/);
print "Value2 : $value2 \n";
if ($value1 eq $value2){
print " length \n";
}
关于如何同时为两个数组设置循环的任何建议?
【问题讨论】:
-
你到底想从最后的
print " length \n";语句中得到什么?你想打印单词长度还是在某些东西上使用长度函数? -
@Telemachus:这个想法不是打印长度。如果满足条件(来自两个数组中不同元素的字母匹配),这就是我写的要打印的任何单词。我只想比较数组的所有元素并存储/输出字母(例如 ABC、PBL)匹配的元素。
-
@Birdy:我不认为你不希望每次匹配到相同的信息,因为它不会告诉你太多。也就是说,当您获得匹配项时,您会一遍又一遍地看到“长度”、(下一个匹配)“长度”、(下一个匹配)“长度”,但您不知道哪些项目匹配。如果您查看所有解决方案,它们的共同点是消息试图告诉用户什么匹配什么。