【问题标题】:Iterative Hash Set up迭代哈希设置
【发布时间】:2017-09-02 03:27:44
【问题描述】:

我有以下数组...

my @array=("100  2", "300  1", "200  3");

我想从这个数组迭代地构造一个哈希。

当前脚本:

my %hash; 
foreach (@array) {
 my @split = (split /\s+/, $_);
 %hash = ("$split[0]", "$split[1]");
} 

电流输出:

$VAR1 = {
         '200' => '3'
        };

这不是我想要的。我的目标是……

目标输出:

$VAR1 = {
         '100' => '2'
         '300' => '1'
         '200' => '3'
        };

我需要做什么?

我正在使用:Perl 5,版本 18

【问题讨论】:

    标签: arrays perl hash hashtable


    【解决方案1】:

    分配给一个散列——你在每次循环中都在做的事情——替换它的内容。替换

    %hash = ("$split[0]", "$split[1]");
    

    $hash{$split[0]} = $split[1];
    

    或者,将所有内容替换为

    my %hash = map { split } @array;
    

    【讨论】:

    • 我使用了 Alternative 选项,效果很好! @ikegami
    猜你喜欢
    • 1970-01-01
    • 2011-02-28
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多