从数组值创建perl哈希

时间:2013-11-05 18:51:06

标签: perl

我有使用数组的数组需要创建perl hash ..例如:@array =(1,2,3,4,5,6) 哈希应该是1-> 2-> 3-> 4-> 6.请帮助任何身体

2 个答案:

答案 0 :(得分:2)

你可以,

my @array =(1,2,3,4,5,6);
my %hash = @array;

会产生类似1=>2, 3=>4, 5=>6

的哈希值
my %hash = map { ($array[$_]) x (1+ ($_ && $_< $#array)) } 0 .. $#array;

会产生类似1=>2, 2=>3, 3=>4, 4=>5, 5=>6

的哈希值

答案 1 :(得分:1)

  • 如果你想创建%hash=(1=>2,3=>4,5=>6) mpapec的答案是正确答案。
  • 如果您想创建%hash=(1=>1,2=>2,3=>3,4=>4,5=>5,6=>6),可以执行以下操作:

    my @array=(1,2,3,4,5,6);
    my %hash;
    for (@array) {
        $hash{$_}=$_
    }
    
  • 如果您不想关心值,只关键,您可以执行以下操作:

    my @array=(1,2,3,4,5,6);
    my %hash;
    @hash{@array}=1;  #will produce %hash=(1=>1,2=>undef,3=>undef,4=>undef,5=>undef,6=>undef)