微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教一个脚本的错误

请教一个脚本的错误

时间: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);

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++;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top