perl防止键值重复
我正逐行循环一个文件,它有键 - >值对,然后输出到xml。我如何进行检查以确保我还没有输出这个键/值对? 在C#中,我会通过插入字典,然后使用.Contains(),perl中的任何提示来做到这一点。perl防止键值重复
你可以使用perl hash来做同样的事情。
my %seen;
while (my $line = <$filehandle>)
{
next if ($seen{$line});
print $line;
$seen{$line} = 1;
}
如果($ $ {$ line});如果(exists $ seen {$ line});',则将'next'更改为'next;否则逻辑错误值如空字符串或字符串“0 “将永远不会被打印。 – 2011-05-25 21:59:39
@Consp条件是测试与*'$ line'关联的值*是否为true,并且'%seen'中的值将严格为undef或1.也就是说,循环体可以被压缩为更加紧凑和习惯'print $行,除非$看见{$ line} ++;'。 – 2011-05-25 22:05:10
我的不好。不知何故,我只读了循环的三行中的两行,并假设你正在用字符串内容填充散列。即键/值存储。 – 2011-05-26 08:59:39
答案很好。你也可以考虑在输入文件中使用'uniq'。 – Alex 2011-05-26 01:04:02