【问题标题】:collating common values and adding integers in a hash整理公共值并在哈希中添加整数
【发布时间】:2013-08-06 01:03:05
【问题描述】:

我正在编写一个脚本,它解析度量端口并将度量名称和值输出到哈希,然后读取哈希并将度量名称和值传递给 gmetric。但是,由于我运行同一进程的多个实例,因此我在哈希的一个字段中有重复的名称:

[MacOSX_Leopard,2
 Win32_Windows,5
 MacOSX,2
 Win32_Windows,5]

我想做的是能够整理这些值并将这些值累加到每个涉及的指标的总数中。在 perl 中如何/最好的方法是什么?

【问题讨论】:

  • Perl 哈希不能有重复的键,所以当你说“我在哈希的一个字段中有重复的名称”时,我认为你的意思是别的。您能否用编程术语提出问题,即您将这些操作系统名称和值的数据具体存储在何处?

标签: perl


【解决方案1】:

如果我理解正确,这就是你的意思:

#!/usr/bin/perl

$value{"MacOSX_Leopard"} += 5;
$value{"MacOSX_Leopard"} += 3;
$value{"MacOSX"} += 3;
$value{"Windows"} += 2;

foreach $key (keys %value) {
   print "$key\t",$value{$key},"\n";
}

结果:

MacOSX  3
Windows 2
MacOSX_Leopard  8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 2016-11-13
    • 2011-09-11
    • 2011-10-25
    • 2012-11-14
    相关资源
    最近更新 更多