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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 5575|回复: 11

[原创] 请教perl的用法

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

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

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

×
大家好,请教大家,我想把两个数组赋值给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-8-20 11:16:37 | 显示全部楼层
array slice
回复 支持 反对

使用道具 举报

发表于 2012-7-27 15:28:11 | 显示全部楼层
自己写了一个,参考一下:
@hash_key=qw(a b c d e f);
@hash_value=qw(1 2 3 4 5 6);
foreach $string(@hash_key)
{
        my $temp=shift @hash_value;
           $hash_list{$string}=$temp;       
}
while (($str1,$str2)=each %hash_list)
{
        print("$str1=>$str2\n");
}
回复 支持 反对

使用道具 举报

发表于 2012-7-21 23:55:46 | 显示全部楼层
我是用for loop 的。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-15 11:39:55 | 显示全部楼层
ddddddddddddddddd
回复 支持 反对

使用道具 举报

发表于 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-3 15:49:45 | 显示全部楼层
回复 5# fuckzhanwu


    It's hash slice,very good!
回复 支持 反对

使用道具 举报

发表于 2012-7-2 12:21:25 | 显示全部楼层
回复 5# fuckzhanwu


    Ok,it's more simple!
回复 支持 反对

使用道具 举报

发表于 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-6-30 10:36:45 | 显示全部楼层
hash就是离散存储吧,不行您用数组引用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X 关闭广告

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

GMT+8, 2025-10-20 06:20 , Processed in 0.019286 second(s), 4 queries , Gzip On, Redis On.

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