我逐行遍历文件,它有key->值对,然后我输出到xml。如何检查以确保我还没有输出此键/值对? 在C#中,通过插入字典然后只使用.Contains(),perl中的任何提示,我会这么容易吗?
答案 0 :(得分:6)
Perl拥有对哈希元素进行操作的defined
和exists
个关键字。
$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;
}