perl防止键值重复

时间:2011-05-25 21:03:28

标签: perl

我逐行遍历文件,它有key->值对,然后我输出到xml。如何检查以确保我还没有输出此键/值对? 在C#中,通过插入字典然后只使用.Contains(),perl中的任何提示,我会这么容易吗?

2 个答案:

答案 0 :(得分:6)

Perl拥有对哈希元素进行操作的definedexists个关键字。

$hash{'foo'} = 'bar';
print defined $hash{'foo'};      #  prints 1
print exists $hash{'foo'};       #  prints 1

在大多数情况下,他们做同样的事情。一个细微的区别是当哈希值是特殊的“未定义”值时:

$hash{'baz'} = undef;
print defined $hash{'baz'};      # doesn't print 1
print exists $hash{'baz'};       # prints 1

答案 1 :(得分:3)

你可以使用perl哈希做同样的事情。

my %seen;
while (my $line = <$filehandle>)
{
  next if ($seen{$line});
  print $line;
  $seen{$line} = 1;
}