-7

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

4

2 回答 2

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

于 2013-11-05T18:53:06.720 回答
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)
    
于 2013-11-05T19:06:46.190 回答