问题标签 [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.
perl - 如何在 Perl 中打印上一个键值?
在这段代码中,我正在检查某个键是否存在。在这里,我正在检查键“Uri”是否存在。我得到的输出为“3”。
输出
但是,我希望在该键之前出现前一个键值。例如:
- 如果我搜索键“Uri”输出应该是“2”
- 如果我搜索键“Vivek”输出应该是“7”
- 如果我搜索关键“柏拉图”输出应该是“0”
有谁知道该怎么做?
sorting - 如何对 perl 哈希进行排序?
我有以下哈希结构,哈希哈希。
我正在尝试根据“分数”值对哈希进行排序。排序应该只发生在主键 '191' 和 '190' 内部的内容中。有关预期结果,请参见下面的哈希结构。
排序是根据分数值降序进行的。
我已经尝试了下面的代码,但它有点基于主键。我需要输出,如预期的哈希结构所示。
这里 %rankBased 是哈希值。
请帮忙。
perl - 加入相同的数组值哈希
我有一个带有特定数据集的哈希。我需要操纵哈希值,以便获得如下结果:
预期输出:
脚本:
电流输出:
我怎样才能在这里得到预期的输出?
regex - 将相同哈希中的关键元素与正则表达式匹配并将其存储在 HoA 中
我有散列(%Hash
)中的元素列表。
我需要相互比较关键元素,如果一个键与另一个键匹配(在某些条件下),那么它将成为一对并且应该将其存储在 HOA 中。
这是我的脚本:
比方说,如果任何元素包含,Network=ROOT,Network=R16,Me=4462,Element=1
那么如果任何其他元素包含上述数据以及键以结尾,Device=\d+
那么两者都应该成为键和值数组。
当前结果:
预期结果:
为什么我undef
在 HOA 中获得价值。
更新: 我已经更新了代码,在第二次哈希迭代中,代码如下所示:
我现在能够得到想要的结果。但是有什么紧凑的方法可以实现这一点(因为我在哈希中迭代哈希)。
perl - 将多个哈希作为参数传递给 Perl 子例程 (Perl 5.16 / Perl 5.30)
我们试图将多个散列与一堆标量一起作为参数传递给子例程。问题在于这个子程序的多次调用,(如果我们在函数内部检索到两个哈希后打印它们),只有一个(第一个)得到正确的值。第二个是空的。我们尝试了很多东西-
1 ) 来自 Stackoverflow/PerlMonks 等具有不同语法的两个独立哈希,并作为参考传递。
或者
2)创建两个哈希数组并传递
4 ) 创建哈希值并通过
- 在 Perl 5.16(CentOS 7 的默认发行版)和 Perl 5.30 中尝试它们。
到目前为止,这还没有成功。如果有人有想法并愿意分享,那将是很大的帮助。
编辑
在@zdim 和@Polar Bear 的建议下,我尝试了这些东西->
将 @_ 卸载到函数内部的标量的语法 ->
一个)
my ($ref_to_hash0, $ref_to_hash1, $var0, $var1, $var2) = @_;
b)
我也尝试过这 3 种散列引用风格的散列赋值。
一个)
my %local_hash_shallow_copy = %$ref_to_hash0;
b)
my $local_hashref_deep_copy = dclone $ref_to_hash0;
C)
my %local_hash_shallow_copy = %{$ref_to_hash0};
似乎在这个 sub 调用的 9 次迭代中,我在 sub 2 内得到了正确的哈希值。在其他时候,我只是简单地丢了一个指针-
我正在使用 Dumper 将散列转储在外部 - 就在子调用之前,并且就在内部 - 就在我将值从 ref 转移到实际散列之后。这应该避免任何愚蠢的错误。
要么我在这里犯了一个非常基本的错误,要么遇到了一个不可思议的问题。正在调试它。
供参考。
java - 如何使用 Java 将 Perl 哈希转换为 JSON?
我很欣赏将 Perl 哈希转换为 JSON 的 Java 代码示例。
很多 Perl 代码都可以做到这一点,但到目前为止还没有找到等效的 Java 代码。
示例哈希: