问题标签 [perl-data-structures]

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 投票
6 回答
11724 浏览

arrays - 如何从 Perl 中的数组中获取哈希值?

我想在 perl 中编写一个小的“DBQuery”函数,这样我就可以有一个发送 SQL 语句并接收回的单行程序和一个哈希数组,即一个记录集。但是,我遇到了 Perl 语法问题(可能还有一些奇怪的指针/引用问题),这使我无法从从数据库中获取的哈希中打包信息。下面的示例代码演示了该问题。

我可以使用以下语法从数组内的哈希中获取数据“Jim”:

返回“吉姆”

但是如果我首先将数组中的哈希记录复制到它自己的哈希变量中,那么奇怪的是我无法再访问该哈希中的数据:

返回“”(空白)

这是显示问题的完整示例代码。任何帮助表示赞赏:

0 投票
5 回答
44006 浏览

perl - 如何在 Perl 哈希表中存储多个值?

直到最近,我一直在使用相同的键将多个值存储到不同的哈希中,如下所示:

然后我可以参考$boss("Bob")$status("Bob")但如果每个键都有很多属性,这会变得笨拙,我不得不担心保持哈希同步。

有没有更好的方法在哈希中存储多个值?我可以将值存储为

然后用split拆解字符串,但一定有更优雅的方式。

0 投票
4 回答
763 浏览

perl - 如何将表格变成矩阵?

如果我在文本文件中有一个表格,例如

  • AB 1
  • 交流电 2
  • 公元1
  • 巴 3
  • 光盘 2
  • AE 1
  • 编 2
  • CB 2
  • . . .
  • . . .
  • . . .

我在另一个文本文件中得到了另一个符号列表。我想将此表转换为 Perl 数据结构,例如:

  • _阿德。. .
  • 一个 0 1 1 。. .
  • D 1 0 2 。. .
  • E 1 2 0 。. .
  • . . . . . . .

但我只需要一些选定的符号,例如在符号文本中选择了 A、D 和 E,但没有选择 B 和 C。

0 投票
5 回答
14631 浏览

perl - 按哈希值哈希的哈希值排序 Perl

我有一个类似于以下的哈希结构:

我需要打印出通过哈希结构的遍历路径和遍历结束时的值,以便按值排序。例如,对于上面的哈希结构,我需要打印:

目前,为了解决这个问题,我正在使用嵌套的 foreach 循环遍历哈希结构,并通过插入一个键等于遍历路径(例如“KeyA Key3 Key10”)且值等于末尾值的元素来创建扁平哈希遍历路径(例如 3),然后执行另一个 foreach 循环,按值对展平的哈希进行排序。

有没有更有效的方法来做到这一点?

0 投票
3 回答
3246 浏览

perl - 如何对值是数组引用的 Perl 哈希进行排序?

嘿,我只是想知道是否有一个很酷的“一个衬里”可以对我的哈希保存数组引用进行排序。所以我的哈希中有一堆键/值,例如:

但是我想按array[0]元素对哈希进行排序。然后循环遍历它们。我有这个开始:

但这显然只是通过数组的指针值对我的哈希进行排序。它不一定是“一行”,但我希望有一个不涉及重建哈希的解决方案。

0 投票
2 回答
8827 浏览

arrays - 按值在数组中搜索哈希

我有一个函数可以将 Excel 数据提取到一个哈希数组中,如下所示:

填充哈希数组很好。但是,困难的部分是在数组中搜索特定项目(哈希)。我似乎无法找到可能具有 id 或 21、batchid 为 15 或成本 > 20 美元等的项目。

我将如何实施这样的搜索工具?

谢谢大家,

0 投票
3 回答
2969 浏览

perl - Perl:在复杂哈希中生成数组

为了使我的数据更易于访问,我想将我的表格数据存储在一个复杂的哈希中。当脚本循环遍历我的数据时,我正在尝试增加一个“HoHoHoA”。根据“perldsc”中的指南:

该脚本编译并运行没有问题,但不向哈希添加任何数据:

即使键应该存在,也不返回任何内容。在哈希上运行“存在”表明它不存在。

我正在阅读的数据文件如下所示:

我想将任何给定日期和时间的数组中每一列的值组合在一起,因此 {COLUMN}、{DATE} 和 {HOUR} 的三个哈希值。

生成的结构将如下所示:

看看我的代码:

Hope my need is clear enough. How can I append values to an array inside these sub-hashes?

0 投票
4 回答
5842 浏览

perl - 如何在 Perl 中创建嵌套哈希作为常量?

我想在 Perl 中做以下 Ruby 代码的等价物:

也就是说,我只想声明一个常量、嵌套的哈希结构,以便在类中和外部使用。如何?

0 投票
3 回答
11471 浏览

arrays - 如何在 Perl 中创建一个哈希数组并循环遍历它们?

我正在尝试创建一个哈希数组,但是在遍历数组时遇到了麻烦。我试过这段代码,但它不起作用:

0 投票
7 回答
27711 浏览

perl - 如何维护添加到 Perl 哈希的键的顺序?

在以下程序中使用哈希计算实际列表的出现后,如何维护实际列表的顺序?例如,<DATA>

使用哈希,我计算了每个元素的出现次数。

我想要的是:

但以下程序向我展示了其他方式。