7个回答
展开全部
建立数组元素为哈希表(散列)的数组,方法是,使用引用,5楼那样的建立方法和直接将列表转换为哈希没有区别,没有什么实际意义。
给楼主一个例子吧
$some_array = [
{ $key1 => $value1
}
{ $key2 => $value2
$key3 => $value3
}
{ $key4 => $value4
$key5 => $value5
$key6 => $value6
}
]
这是一个匿名引用。这个引用中在一个数组里放了三个不同的哈希,每个哈希遵循自己的规则。
我的代码里有一个小问题,就是哈希键值对不一定要使用变量,如我上面说的,只要每个哈希遵循自己的规则就可以,下面这个也可以。
$some_array = [ \%hash1, \%hash2, \%hash3, ]
另外,在匿名引用中,匿名数组用[]标定,匿名哈希用{}标定。
具体的我觉得楼主的问题既然已经涉及到这里了,可以仔细去研究一下引用。
给楼主一个例子吧
$some_array = [
{ $key1 => $value1
}
{ $key2 => $value2
$key3 => $value3
}
{ $key4 => $value4
$key5 => $value5
$key6 => $value6
}
]
这是一个匿名引用。这个引用中在一个数组里放了三个不同的哈希,每个哈希遵循自己的规则。
我的代码里有一个小问题,就是哈希键值对不一定要使用变量,如我上面说的,只要每个哈希遵循自己的规则就可以,下面这个也可以。
$some_array = [ \%hash1, \%hash2, \%hash3, ]
另外,在匿名引用中,匿名数组用[]标定,匿名哈希用{}标定。
具体的我觉得楼主的问题既然已经涉及到这里了,可以仔细去研究一下引用。
展开全部
hash 由键值关系构成,你可以把数组赋值给hash
use strict;
use warnings;
my @a;
for(my $i=0;$i<10;$i++){
$a[$i]=$i;
}
print Dumper(@a);
my %a=@a;
for my $key (keys %a){
print "key:",$key,"value:",$a{$key},"\n";
}
结果:
$VAR1 = 0;
$VAR2 = 1;
$VAR3 = 2;
$VAR4 = 3;
$VAR5 = 4;
$VAR6 = 5;
$VAR7 = 6;
$VAR8 = 7;
$VAR9 = 8;
$VAR10 = 9;
key:8value:9
key:6value:7
key:4value:5
key:0value:1
key:2value:3
use strict;
use warnings;
my @a;
for(my $i=0;$i<10;$i++){
$a[$i]=$i;
}
print Dumper(@a);
my %a=@a;
for my $key (keys %a){
print "key:",$key,"value:",$a{$key},"\n";
}
结果:
$VAR1 = 0;
$VAR2 = 1;
$VAR3 = 2;
$VAR4 = 3;
$VAR5 = 4;
$VAR6 = 5;
$VAR7 = 6;
$VAR8 = 7;
$VAR9 = 8;
$VAR10 = 9;
key:8value:9
key:6value:7
key:4value:5
key:0value:1
key:2value:3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定可以,数组只是一种特别的哈希,是一种键为有规律数字的哈希
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以 你可以用一个循环把它转成哈希表,注意key别有相同的哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询