免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: BosCourage
打印 上一主题 下一主题

怎么在Hash中放一个数组呢? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-07-18 20:00 |只看该作者
原帖由 兰花仙子 于 2006-7-18 19:55 发表



my @test = split / |\t/, $_; 这样写有点冗余,直接 my @test = split;即可。
my $name = shift @test;   这表示数组的第一个元素弹出来赋值给$name。
my $name = [@test];   这表示从@test复制出一个匿 ...


谢谢,
确实要好好复习课本才行。

论坛徽章:
0
12 [报告]
发表于 2006-07-19 17:03 |只看该作者
原帖由 兰花仙子 于 2006-7-18 19:55 发表



my @test = split / |\t/, $_; 这样写有点冗余,直接 my @test = split;即可。
my $name = shift @test;   这表示数组的第一个元素弹出来赋值给$name。
my $name = [@test];   这表示从@test复制出一个匿 ...


sorry for my ugly code.

数据:
aa 22 33 44 55
bb 66 77 88 99
..

# 想负值为 $aa = ["22","33","44","55"];
#              $bb = ["66","77","88","99"];
#..

应该可以这样:
open IN,"FILE" or die $!;

while (<IN>) {
        my @test = split;
        my $name = shift @test;
        $$name = \@test;
        ...
#    print $$$name[0];
}

[ 本帖最后由 vio 于 2006-7-19 17:36 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2006-07-19 17:39 |只看该作者
原帖由 vio 于 2006-7-19 17:03 发表


sorry for my ugly code.

数据:
aa 22 33 44 55
bb 66 77 88 99
..

# 想负值为 $aa = ["22","33","44","55"];
#              $bb = ["66",& ...


tips:

  1. perl -MData::Dumper -le '$l="aa 22 33 44 55"; (${$x}, @a)=split(/\s/, $l); $aa=\@a; print Dumper($aa);'
  2. $VAR1 = [
  3.           '22',
  4.           '33',
  5.           '44',
  6.           '55'
  7.         ];
复制代码

论坛徽章:
0
14 [报告]
发表于 2006-07-19 17:45 |只看该作者
原帖由 ulmer 于 2006-7-19 17:39 发表


tips:
[code]
perl -MData:umper -le '$l="aa 22 33 44 55"; (${$x}, @a)=split(/\s/, $l); $aa=\@a; print Dumper($aa);'
$VAR1 = [
          '22',
          '33',
          '44',
  ...


Thanks so much!
perfect and fantastic!

论坛徽章:
0
15 [报告]
发表于 2006-07-19 17:49 |只看该作者
原帖由 ulmer 于 2006-7-19 17:39 发表


tips:
[code]
perl -MData::Dumper -le '$l="aa 22 33 44 55"; (${$x}, @a)=split(/\s/, $l); $aa=\@a; print Dumper($aa);'
$VAR1 = [
          '22',
          '33',
          '44',
  ...

why use ${$x} in here ?

论坛徽章:
0
16 [报告]
发表于 2006-07-19 18:06 |只看该作者
原帖由 vio 于 2006-7-19 17:49 发表

why use ${$x} in here ?


as you want: dynamical variable name (not value but name!!!), such as $aa, $bb.

  1. $girl = 'MM';
  2. ${$girl} = 'Lin Dai-Yu';
  3. print "I don't like ", $MM, "\n";
复制代码


Best,
    ulmer
--------------
Just 4 Fun

论坛徽章:
0
17 [报告]
发表于 2006-07-19 22:22 |只看该作者
原帖由 ulmer 于 2006-7-19 18:06 发表


as you want: dynamical variable name (not value but name!!!), such as $aa, $bb.

  1. $girl = 'MM';
  2. ${$girl} = 'Lin Dai-Yu';
  3. print "I don't like ", $MM, "\n";
复制代码

...


Thank you.
Got it.

But I think I like Lin Dai-Yu,.

Thanks a lot again!

论坛徽章:
0
18 [报告]
发表于 2006-07-19 23:45 |只看该作者
原帖由 vio 于 2006-7-19 22:22 发表


Thank you.
Got it.

But I think I like Lin Dai-Yu,.

Thanks a lot again!


林黛玉太柔弱啦。中国女孩我喜欢看Twins类型的,西方的偶喜欢Jennifer Garner.

论坛徽章:
0
19 [报告]
发表于 2006-07-20 16:11 |只看该作者
原帖由 兰花仙子 于 2006-7-19 23:45 发表


林黛玉太柔弱啦。中国女孩我喜欢看Twins类型的,西方的偶喜欢Jennifer Garner.


老实说我连红楼梦都没看完过
--电视剧更不用说了,倒胃口
我只是看过其中的一些诗词,包括Lin的
很喜欢

Jennifer Garner也是我喜欢的

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP