【发布时间】:2019-01-04 07:45:36
【问题描述】:
我有一个看起来像这样的哈希
my %hash = (key1 => [value1],
key2 => [value1,value2],
key3 => [value3,value3,value3],
key4 => [value2,value2,value2]
);
现在我想将这些值相互比较并挑选出奇数键。即所有值都不相同的键,在本例中为key2
取出每个键并迭代数组似乎是一种折磨。有没有简单的方法可以做到这一点?
我想使用这个奇怪的键并打印出值/在哈希中给它一个计数
例如。
my %hash2;
$hash2{key2}{value1} =2;
$hash2{key2}{value2} =2;
我该如何做到这一点?
【问题讨论】:
-
key不也是不匹配吗?你如何确定它们是相同的?我想我会为此使用metacpan.org/pod/Test::Deep::NoTest。也许与bag比较。这似乎是我能想到的最懒惰的方式,除了请互联网上的陌生人为我做这件事。 ;) -
@simbabque,本例中的值是字符串,所以我认为我们可以使用
eq运算符更喜欢代码而不是模块 -
模块就是代码。老实说,这看起来很像一个家庭作业问题。如果是这种情况,请研究该模块的代码。它将帮助您了解您需要做什么。请解释一下你有更好的目标。您的第二个代码块不是很清楚。我不明白你为什么分配这些数字。那么
key1呢? -
我认为“取出每个键并遍历数组”是唯一的方法。也许
grep可能有用,这是一个也许我没有对此进行任何尝试