perl - 我如何检查一个值是否在 Perl 的列表中?

标签 perl list hash arrays

我有一个文件,其中每一行都是一个代表一个 id 的整数。我想做的只是检查一些特定的 id 是否在这个列表中。 但是代码不起作用。它从来没有告诉我它存在,即使 123 是该文件中的一行。我不知道为什么?感谢帮助。

open (FILE, "list.txt") or die ("unable to open !");

    my @data=<FILE>;

    my %lookup  =map {chop($_) => undef} @data;

    my $element= '123';
    if (exists $lookup{$element})
    {
        print "Exists";
    }

提前致谢。

最佳答案

你想确保你的哈希值是正确的。非常过时的chop不是你想用的。使用 chomp相反,在创建散列之前立即在整个数组上使用它:

 open my $fh, '<', 'list.txt' or die "unable to open list.txt: $!";
 chomp( my @data = <$fh> );
 my $hash = map { $_, 1 } @data;

关于perl - 我如何检查一个值是否在 Perl 的列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678503/

相关文章:

perl - 通过 cpan 安装 perl 模块 Net::SSLeay

python - 为什么 list(my_list) 修改对象?

python - 为空元组列表返回 False 的最佳方法

python - 创建 100 个随机整数的列表,返回最大值

c++ - 在这种情况下如何使用new和delete

arrays - 为什么我的第一个哈希值在 Perl 中消失了?

perl - 污染和污染模式

perl - 如何检查Perl中的几个变量是否为空

python - 如何使用 Python 编码和解码字符串以用于 URL?

Java HashMap 未从键获取值