问题描述
|
我正在逐行遍历一个文件,它具有键-值对,然后将其输出到xml。如何检查以确保尚未输出此键/值对?
在C#中,我将通过插入字典然后仅使用.Contains()来轻松做到这一点,在Perl中有任何提示吗?
解决方法
Perl具有用于哈希元素的the0ѭ和
exists
关键字。
$hash{\'foo\'} = \'bar\';
print defined $hash{\'foo\'}; # prints 1
print exists $hash{\'foo\'}; # prints 1
对于大多数目的,它们执行相同的操作。一个细微的区别是,当哈希值是特殊的\“ undefined \”值时:
$hash{\'baz\'} = undef;
print defined $hash{\'baz\'}; # doesn\'t print 1
print exists $hash{\'baz\'}; # prints 1
,您可以使用perl哈希执行相同的操作。
my %seen;
while (my $line = <$filehandle>)
{
next if ($seen{$line});
print $line;
$seen{$line} = 1;
}