gpt4 book ai didi

perl - 在 Perl 中将整个文件读入散列

转载 作者:行者123 更新时间:2023-12-04 22:55:53 25 4
gpt4 key购买 nike

我在 Perl 中将文件读入散列时遇到一些问题。

Chr1_supercontig_000000000  1   500
PILOT21_588_1_3_14602_59349_1
Chr1_supercontig_000000001 5 100
PILOT21_588_1_21_7318_90709_1
PILOT21_588_1_43_18803_144592_1
PILOT21_588_1_67_13829_193943_1
PILOT21_588_1_42_19678_132419_1
PILOT21_588_1_67_4757_125247_1
...

所以我上面有这个文件。我想要的输出是以“Chr1”行作为键,“PILOT”行作为值的散列。
Chr1_supercontig_000000000 => PILOT21_588_1_3_14602_59349_1
Chr1_supercontig_000000001 => PILOT21_588_1_21_7318_90709_1, PILOT21_588_1_43_18803_144592_1,...

据我所知,只能通过引用将多个值分配给一个键,对吗?

我被困在这一点上,需要帮助。

最佳答案

你是对的,散列值需要是指向包含 PILOT 行的数组的引用。

这是一种方法:

my %hash;
open FILE, "filename.txt" or die $!;
my $key;
while (my $line = <FILE>) {
chomp($line);
if ($line !~ /^\s/) {
($key) = $line =~ /^\S+/g;
$hash{$key} = [];
} else {
$line =~ s/^\s+//;
push @{ $hash{$key} }, $line;
}
}
close FILE;

关于perl - 在 Perl 中将整个文件读入散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7610445/

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