请教一个脚本的错误
时间:10-02
整理:3721RD
点击:
大家好,请教大家,我想把两个数组赋值给hash,结果出来的结果顺序乱掉了我期待的结果
a => 1
b => 2
c => 3
d => 4
实际的结果
1 => 2
c => d
a => b
3 => 4
请问如何改正?
@array_name =qw/a b c d/;
@array_value =1..4;
my %hash = ( @array_name => @array_value);
a => 1
b => 2
c => 3
d => 4
实际的结果
1 => 2
c => d
a => b
3 => 4
请问如何改正?
@array_name =qw/a b c d/;
@array_value =1..4;
my %hash = ( @array_name => @array_value);
my %hash = ( @array_name => @array_value);
好像不能这么干。
因为hash初始化的另一种方法是:
%hash = (
"key1", "value1",
"key2", "value2",
"key3", "value3"
);
所以=>和,是等价的,也就是说第一个元素永远是key,第二个元素,在这个里是array_name中第二个值(b)永远是value.
我改成foreach,下面的代码还是可以的。
$num_reg=0;
foreach (@array_signal) { # assigns each line in turn to $hash{$array_signal[$num_reg]} = $array_value[$num_reg];
$num_reg++;
}
我改成foreach,下面的代码还是可以的。
$num_reg=0;
foreach (@array_signal) { # assigns each line in turn to $hash{$array_signal[$num_reg]} = $array_value[$num_reg];
$num_reg++;
}
