【问题标题】:Perl create a hash from array that has the key and the valuePerl 从具有键和值的数组创建散列
【发布时间】:2015-09-18 03:26:13
【问题描述】:

我在下面有一个我正在尝试做的例子。它有效,但我认为它可能会更好。我有一个数组,其中包含一个由冒号分隔的同一字符串中的键和值。我需要把它变成一个哈希。目前我使用拆分和临时数组。我觉得我可以解决这个问题,但我找不到语法。

#!/grid/common/bin/perl -w
my @row=("x:3", "y:4", "z:abc");
my %hash = map { my @x=split(":",$_); $x[0] => $x[1] } @row;
print("$_ : $hash{$_}\n") for(keys(%hash));

【问题讨论】:

    标签: perl hash


    【解决方案1】:

    您可以简单地将拆分操作映射到您的键值对数组中,并将该结果分配回散列。 perldoc -f split 返回一个列表,您可以将列表直接分配给哈希:

    my @row = ("x:3", "y:4", "z:abc");
    my %hash = map { split /:/ } @row; # outputs "x", "3", "y", "4", "z", "abc"
    print("$_ : $hash{$_}\n") for(keys(%hash));
    # output
    # z : abc
    # y : 4
    # x : 3
    

    【讨论】:

    • 谢谢!我可以发誓我试过了,知道我很接近。
    猜你喜欢
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 2017-02-21
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多