问题标签 [perl-hash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
99 浏览

regex - 如何在 Perl 中合并两个以不同键开头的哈希?

我必须散列如下:

我需要将这些合并到一个哈希中。我尝试使用 Hash::Merge 但这仅在我从 subtop 开始时才有效。

倾倒结果$merged_hash给出:

但我错过了 hash1 的顶部:

合并后所需的哈希应该是这样的:

0 投票
2 回答
197 浏览

perl - 查找哈希值的平均值 Perl

我希望返回下面的哈希值(每个键)的平均值(grades.txt)

到目前为止,我的子程序看起来像这样:

0 投票
2 回答
59 浏览

perl - 如何将一个二维元素存储在另一个哈希中?

我有一个二维哈希。

我想检索这样的哈希:

hashSlice 应该在哪里:

我已经尝试了 %、$ 和 @ 的所有组合。我也看过这里

我似乎无法从二维散列中得到一个散列。我不想为此使用任何库。我是 perl 的新手。任何帮助将不胜感激。

0 投票
3 回答
98 浏览

perl - Perl 哈希引用 - 是否可以将对嵌套哈希的引用放入 1 个变量中?

我有一个部分嵌套的哈希,如下所示:

我想得到$href->{'word_counts'}{'train'}. 是否可以将 放入{'word_counts'}{'train'}变量中,所以我可以通过简单地调用来访问它$href->$variable

0 投票
2 回答
49 浏览

perl - 如何使用 Perl 解析多个 csv 文件并仅打印唯一的结果

我有一堆简单格式的 csv 文件,比如“姓名、国家、货币”。我需要阅读所有这些并只打印唯一的联合。如果它们出现在几个文件中,它们是相同的。尝试使用 Hash::Merge 但似乎只适用于两个。我假设我必须在打开这些文件进行阅读时在循环中重新初始化它,但不确定如何。最后,我想要一个性质相同但包含所有文件而不重复的文件。非常感谢。

输入看起来像:

输出需要相同的格式。我循环读取文件,并且在任何阶段我都有两个哈希 %A 和 %B ,其中 $name 作为键(拆分后)。

我也有两个 %merged 哈希定义为

我得到的错误是抱怨未知功能“合并”。一定是简单的东西,但看不到。

0 投票
2 回答
62 浏览

perl - 在列表上下文中分配哈希有什么区别?

我不得不表达:

为什么第一个表达式只有一个monthsundef值的键?它们之间有什么区别?

0 投票
3 回答
88 浏览

perl - 如何破译散列数组?

我完全把这个问题弄错了。我正在使用 TMDB 的方法:

我认为输出是 JSON 格式,所以这让我很困惑,这让我一直在转圈,因为我看错了。

没有意识到下面来自 Dumper 的数据是我必须经过的实际哈希值。

这是我碰壁的地方,所以下面的数据是一个有五个键的哈希。我想要的第五个键包含另一个数组。这是我无法读入的数组。我尝试将其取消引用到哈希中,这就是我失败的地方。

我正在尝试的代码是:

它会打印出一个数组,但我无法读取该数组中的哈希值。

ps 我必须将此输出格式化为代码,否则输出时没有换行符。

0 投票
1 回答
79 浏览

perl - Perl:如何在键来自数组的地方生成哈希值

我想使用数组的结构对哈希进行哈希处理。每个数组元素都应该是前一个数组元素的子键。例如使用以下数组:

我想制作一个结构如下的哈希:

$hash{"animal"}{"dog"}{"sparky"} = 1;

数组并不总是具有相同数量的元素。但它应该构建相同的结构。

谢谢你的帮助。

0 投票
2 回答
108 浏览

perl - 哈希参考中的 Perl 访问值

在我的 Perl 代码中,我最终得到了如下所示的哈希引用。我想从中访问单个元素。我尝试了多种方法,但我无法获取它。

输出

0 投票
2 回答
97 浏览

arrays - 初始化数组的哈希

我想要一个计数器数组的哈希值,初始值为 0。这是我对代码的第一次尝试:

我们看到它们都是同一个数组,这是不希望的。为了解决这个问题,我将 #Assignment 行更改为:

现在都是不同的阵法,生活还不错。

如果分配行使用 (0, 0, $i) 我得到不同的数组(至少在这里 - 它们可能会在其他地方重用)
但我无法通过使用 (0, 0, $i - $i) 或更复杂的公式来生成 0 值。

这是 Perl 的某种优化吗?为什么 (0, 0, 0) 不是每次都是一个新数组?(0, 0) 或 (0, 0, 0, 0) 会不同吗?

为了完整起见,这里是打印子例程:

---- 以下编辑是在“没有数组注释”之后的 2 月 9 日上午 - 我想添加一些代码,但注释不允许这样做。

好的:$h{$i} = (0, 0, 0); 将其初始化为标量值 0。
但是,如下面的输出所示,某处有一个数组。
编写 $h{$i}[$i] 是否在标量旁边创建了 @-something?