gpt4 book ai didi

arrays - Perl:将文件加载到哈希中

转载 作者:行者123 更新时间:2023-12-01 09:23:08 26 4
gpt4 key购买 nike

我很难理解 Perl 中哈希背后的逻辑。任务是将文件加载到散列中并将值分配给使用此文件创建的键。

文件包含字母,每个字母占一行:

a
b
c
d
e

等等。当使用 array 而不是 hash 时,逻辑很简单:将文件加载到数组中,然后使用某个计数器 ($counter++) 打印具有相应数字的每个元素。

但现在我的问题是,我如何将文件读入我的哈希,分配自动生成的值并以这样的方式对其进行排序,输出如下所示:

a:1
b:2
c:3

我尝试先创建数组,然后使用

将其链接到哈希
%hash = @array

但它使我的哈希不可排序。

最佳答案

有很多方法可以解决这个问题。最直接的方法是在您阅读文件时将数据加载到哈希中。

my %hash;
while(<>)
{
chomp;
$hash{$_} = $.; #Use the line number as your autogenerated counter.
}

如果你已经有一个填充数组,你也可以执行类似的逻辑。

for (0..$#array)
{
$hash{$array[$_]} = $_;
}

不过,如果您遇到这种情况,map是更糟糕的做事方式。

%hash = map { $array[$_] => $_ } @array;

关于arrays - Perl:将文件加载到哈希中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29904287/

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