gpt4 book ai didi

perl - 在散列 Perl 中增加值

转载 作者:行者123 更新时间:2023-12-01 23:12:36 26 4
gpt4 key购买 nike

我正在尝试增加散列值,但我得到了令人困惑的输出。我将一组数组、散列和标量值传递给一个函数。

下面的代码打算首先查看它是否是哈希,如果是,则遍历值并递增它们。

elsif (ref($_) eq "HASH"){

foreach $s (values %{$_}){
$s++;
}
}

我正在传递以下哈希值:

 { a => 1, b => 2, c => 3  }, { d => 4, e => 5 },

然而,当我打印或返回 $s 时,我得到不同的输出,例如:

4 2 3 5 6

2 4 3 6 5

或其他一些随机变化。显然,我想要的是,

2 3 4 5 6

我敢肯定这很简单,但我对 Perl 不是很有经验。

最佳答案

哈希在 Perl 中没有排序。如果要对值进行排序,请对它们进行排序:

#! /usr/bin/perl
use warnings;
use strict;
use feature qw{ say };

my $ref = { a => 1, b => 2, c => 3 };

$_++ for values %$ref;
say join ' ', sort values %$ref; # By values.
say join ' ', @$ref{ sort keys %$ref }; # By keys.

关于perl - 在散列 Perl 中增加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46299218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com