在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1845|回复: 4

[原创] 请教一个脚本的错误

[复制链接]
发表于 2012-6-29 11:29:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好,请教大家,我想把两个数组赋值给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);
发表于 2012-6-29 12:30:09 | 显示全部楼层
my %hash = ( @array_name => @array_value);
好像不能这么干。
发表于 2012-6-29 12:33:12 | 显示全部楼层
因为hash初始化的另一种方法是:
%hash = (
"key1", "value1",
"key2", "value2",
"key3", "value3"
);
所以=>和,是等价的,也就是说第一个元素永远是key,第二个元素,在这个里是array_name中第二个值(b)永远是value.
 楼主| 发表于 2012-6-29 15:06:35 | 显示全部楼层
本帖最后由 atlandis 于 2012-6-29 15:14 编辑

回复 2# tigerjade


   我改成foreach,下面的代码还是可以的。
$num_reg=0;
   foreach (@array_signal) { # assigns each line in turn to     $hash{$array_signal[$num_reg]} = $array_value[$num_reg];
    $num_reg++;
}
 楼主| 发表于 2012-6-29 15:18:56 | 显示全部楼层
回复 3# tigerjade


   我改成foreach,下面的代码还是可以的。
$num_reg=0;
   foreach (@array_signal) { # assigns each line in turn to     $hash{$array_signal[$num_reg]} = $array_value[$num_reg];
    $num_reg++;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-7 12:24 , Processed in 0.029396 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表