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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 1987|回复: 4

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

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

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

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

×
大家好,请教大家,我想把两个数组赋值给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 下一条


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

GMT+8, 2025-9-13 19:53 , Processed in 0.022063 second(s), 5 queries , Gzip On, Redis On.

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