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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4492|回复: 11

[原创] 请教perl的用法

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

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

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

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 13:11:24 | 显示全部楼层
我是用for loop 的。。。
发表于 2012-6-29 14:18:34 | 显示全部楼层
#! ~/usr/bin/perl -w
use strict;
my @array_name=qw/a b c d/;
my @array_value=1..4;
foreach my $name(@array_name) {
  my $value = shift @array_value;
  my %hash  = ($name=>$value);
}

你看看这样可以吗?
发表于 2012-6-30 10:36:45 | 显示全部楼层
hash就是离散存储吧,不行您用数组引用
发表于 2012-6-30 19:09:02 | 显示全部楼层
回复 3# hnulht789

#!/usr/bin/perl -w
use strict;
use warnings;

my @arry_name = qw/a b c d/;
my @arry_value= 1..4;
my %hash;

@hash{ @arry_name } = @arry_value;
发表于 2012-7-2 12:21:25 | 显示全部楼层
回复 5# fuckzhanwu


    Ok,it's more simple!
发表于 2012-7-3 15:49:45 | 显示全部楼层
回复 5# fuckzhanwu


    It's hash slice,very good!
发表于 2012-7-12 10:54:19 | 显示全部楼层
回复 1# atlandis


"my %hash = ( @array_name => @array_value); "

像这样用是不行的, "=>"的作用在这里和逗号是一样的.

上面的语句解析出来就是 my %hash = ( a,b,c,d,1,2,3,4);
也就是  my %hash = ( a=>b,c=>d,1=>2,3=>4);

用for或者foreach是可以达到你的目的的
发表于 2012-7-15 11:39:55 | 显示全部楼层
ddddddddddddddddd
发表于 2012-7-21 23:55:46 | 显示全部楼层
我是用for loop 的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-20 20:29 , Processed in 0.028194 second(s), 8 queries , Gzip On, Redis On.

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