问题标签 [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 投票
3 回答
2465 浏览

perl - 如何在 Perl 的哈希中存储二维数组?

我正在通过 perl 中的对象苦苦挣扎,并试图创建一个二维数组并将其存储在我的对象的哈希字段中。我知道要创建一个二维数组,我需要一个对数组的引用数组,但是当我尝试这样做时,我得到了这个错误:Type of arg 1 to push must be array (not hash element)构造函数工作正常,并且set_seqs工作正常,但是我的create_matrix子程序抛出了这些错误。

这是我正在做的事情:

知道我做错了什么吗?

0 投票
4 回答
2730 浏览

perl - 如何在脚本执行期间创建匿名哈希并将其添加到已知哈希?

我将尝试用一个例子来说明这一点。举一个 Hash of Hash 的常见示例:

出于我的目的,我希望能够将未命名或匿名哈希添加到 %HOH。直到运行时,我才需要(或能够)定义这些子哈希。我怎样才能用 Perl 做到这一点?

我读过的所有内容(我已经读过 Perldocs 和 Google 的内容)似乎都显示了定义所有 sub-hahes(例如“flintstones”、“jetsons”和“simpsons”)的示例。

我正在做的是尝试构建一个父哈希,它将包含来自 CSV 文件的行的子哈希:

直到运行时才知道我需要的“%LineX”哈希的数量(因为它们代表在运行时读取的 CSV 中的行数)。

有任何想法吗?如果还不清楚......我仍然试图围绕 Perl 散列。

0 投票
2 回答
2409 浏览

perl - 如何从哈希哈希中获取哈希切片?

我有一个像这样的哈希:

我得到的错误是:不能在 q.pl 第 17 行使用未定义的值作为 ARRAY 引用,这是打印的行。

我期望的是1,2

0 投票
5 回答
2766 浏览

perl - 如何访问存储在 Perl 哈希中的数组元素?

我是 Perl 的新手。请帮我。

0 投票
5 回答
9261 浏览

perl - 如何在 Perl 哈希中获取二级键?

我需要获取哈希中某个键的所有值。哈希看起来像这样:

我只需要值Key4,例如。其余的不是兴趣点。我怎么能得到这些值?Key5Key6

更新:所以我没有%bean我只是将值添加到$bean这样的:

希望这可以帮助。

0 投票
3 回答
20563 浏览

arrays - 如何在散列的数组中引用 Perl 散列?

这是我正在使用的代码片段:

我期望得到的是:

大小 = 1600x1200,位置 = -25

大小 = 1280x1024,位置 = 25

大小 = 800x600,位置 = 0

我得到的是:

在 C:\Test.pl 第 23 行的连接 (.) 或字符串中使用未初始化的值 $size。

在 C:\Test.pl 第 23 行的连接 (.) 或字符串中使用未初始化的值 $position。

大小 = , 位置 =

foreach 语句显然是错误的,因为不仅没有 $size 和 $position 的值,而且它只经历了一次循环而不是三次。我已经尝试了各种变量前缀的变体,但都没有找到。

我究竟做错了什么?

0 投票
8 回答
39661 浏览

perl - 如何在 Perl 中迭代哈希(哈希)?

我有哈希,其中键的值是其他哈希。

例子:{'key' => {'key2' => {'key3' => 'value'}}}

我怎样才能遍历这个结构?

0 投票
4 回答
674 浏览

perl - 如何使用 Perl 哈希存储库存?

对于大学的作业,我们必须用 Perl 编写一个脚本,以便我们管理电子商店的库存。(给出的例子是亚马逊)。用户可以在完全基于文本的环境中下订单,并且在订单完成后必须更新库存。

库存中的每个项目都有 3 到 4 个属性:产品代码、标题、价格和某些数量(例如 MP3 没有此属性)

由于这是我第一次接触 Perl,我真的不知道如何开始。我的主要问题是我应该如何在程序中“实施”库存。该程序的功能之一是搜索标题。另一种是下订单,用户应提供产品代码。

我的第一个想法是以产品代码为键的散列。但是,如果我想搜索可能因此出现问题的标题:哈希键类似于 DVD-123,属于该键的信息可能是“The Green Mask 12”(不带引号),其中 12 表示目前有多少这张 DVD 有存货。所以我最终必须找到一种方法来忽略 12。

另一种解决方案是使用标题作为键,但我认为这也很麻烦。

有没有办法用 2 个键创建一个哈希表,当我只给出一个时,它会返回一个包含其他值的数组?(包括另一个密钥和其他信息)这样我就可以根据我需要的库存信息来使用另一个密钥。

我们必须从如下所示的文本文件中读取默认库存:

0 投票
4 回答
2093 浏览

arrays - 如何对哈希数组的 Perl 数组进行排序?

输出是:

但我希望它是

请告诉我这是哪里错了。

另外我如何对值进行排序,以便我得到输出为

0 投票
4 回答
4037 浏览

perl - 如何根据另一个散列的键/值删除 [子] 散列?

假设我有两个哈希。其中一个包含一组数据,这些数据只需要保留显示在另一个哈希中的内容。

例如

我想做的是删除 hash1 中的整个子哈希,如果它不作为 hash2{major} 中的键/值存在,最好没有模块。"innerX" 中包含的信息无关紧要,它必须单独放置(除非要删除 subhash,否则它可以消失)。

在上面的示例中,执行此操作后,hash1 将如下所示:

它删除了 hash1{test1} 和 hash1{test3},因为它们与 hash2 中的任何内容都不匹配。

这是我目前尝试过的,但它不起作用。这也可能不是最安全的事情,因为我在尝试从中删除哈希时循环了它。但是我要删除每个应该没问题的?

这是我这样做的尝试,但是 perl 抱怨:

不能使用字符串(“inner1”)作为哈希引用,而“严格引用”在使用