gpt4 book ai didi

perl - 在 perl 中将制表符分隔的文件读入哈希并进行搜索

转载 作者:行者123 更新时间:2023-12-04 05:38:42 25 4
gpt4 key购买 nike

我有一个制表符分隔的文件 (inpFile.txt) 作为

field1  field2
aaa1 aaa2
aaa1 bbb2
aaa1 ccc2
ccc1 ddd2
eee2 aaa2

我想读取它并将其存储到哈希( hashname )

一旦我的哈希准备好,我想搜索是否找到 ($key, $value) 对。例如,是否找到 (eee2, aaa2)?

我是 Perl 的初学者,但我知道它可以在 Perl 中有效地完成并且很容易。

我写了以下代码。你能进一步扩展吗?

谢谢
#!/usr/local/bin/perl

open (LIST1, "/inpFile.txt") || die "File not found\n";
while (<LIST1>) {
($tmpvar1, $tmpvar2) = split(/\t/, $_);
$hashname{$tmpvar1} = $tmpvar2;
}
close(LIST1);

最佳答案

由于您的数据包含具有多个值的键,并且假设您的数据文件实际上就是这种情况,您可以创建一个数组散列 (HoA),其中一个键与一个数组相关联:

use Modern::Perl;

my %hashname;

while (<DATA>) {
my ( $key, $value ) = split;
push @{ $hashname{$key} }, $value;
}

my $searchKey = 'aaa1';
my $searchVal = 'ccc2';

if ( defined $hashname{$searchKey}
and $searchVal ~~ @{ $hashname{$searchKey} } )
{
say "key: $searchKey with val: $searchVal found.";
}
else {
say "key: $searchKey with val: $searchVal not found.";
}

__DATA__
aaa1 aaa2
aaa1 bbb2
aaa1 ccc2
ccc1 ddd2
eee2 aaa2

搜索“键/值”对的方法是首先查看键是否存在,然后使用智能匹配运算符查看与键关联的数组中是否存在该值。

输出:
key: aaa1 with val: ccc2 found.

希望这可以帮助!

关于perl - 在 perl 中将制表符分隔的文件读入哈希并进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11572316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com