免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4873 | 回复: 18
打印 上一主题 下一主题

如何用一个变量值命名一个hash的array? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-14 10:07 |只看该作者 |倒序浏览
如何以一个变量的值来命名hash的array?

论坛徽章:
0
2 [报告]
发表于 2004-12-14 10:44 |只看该作者

如何用一个变量值命名一个hash的array?

你是想用变量的值做哈希的值?还是做哈希的键?
前者就直接存就行了,后者请见http://bbs.chinaunix.net/forum/25/20041213/465273.html
斑竹的回答

论坛徽章:
0
3 [报告]
发表于 2004-12-14 11:15 |只看该作者

如何用一个变量值命名一个hash的array?

呵呵  
我的本意不是这样的   
我想要的是用一个循环中的变量的值来命名每次生成的新数组 ( 变量值是作为新数组的名字 )  
例如 $one="aaa"; 则生成一个@aaa=();
到下一个循环了 ,此时$one编程“bbb",则再生成一个@bbb=[],(数组的元素是hash,这是后话,跟现在的问题没什么关系 )。
我现在生成不了对应于变量值的数组  ?? who知道如何实现?

论坛徽章:
0
4 [报告]
发表于 2004-12-14 12:13 |只看该作者

如何用一个变量值命名一个hash的array?

解决了   但不严格

论坛徽章:
0
5 [报告]
发表于 2004-12-14 12:16 |只看该作者

如何用一个变量值命名一个hash的array?


  1. #!/usr/bin/perl

  2. use Data::Dumper;


  3. my $h;
  4. $h->;{'a'} = "1";
  5. $h->;{'b'} = "2";

  6. print Dumper($h);
复制代码

论坛徽章:
0
6 [报告]
发表于 2004-12-14 13:03 |只看该作者

如何用一个变量值命名一个hash的array?


  1. #!/bin/perl -w
  2. use strict;
  3. no strict 'refs';
  4. my $a="aaa";
  5. @{"$a"}=qw(1 2 3);
  6. print @{"$a"};
复制代码



  1. #!/bin/perl -w
  2. #use strict;
  3. my $a="aaa";
  4. open (F,">;tmp");
  5. @{print F $a}=qw(1 2 3);
  6. print @{print F $a};
  7. close F;
  8. unlink 'tmp';
复制代码

论坛徽章:
0
7 [报告]
发表于 2004-12-14 13:13 |只看该作者

如何用一个变量值命名一个hash的array?

sorry,两个程序都有问题,在程序尾加上

  1. print @aaa;
复制代码

后,就会发现@aaa没有被定义~
但是谁能帮我解释下,我的程序里列表值被存储到哪里去了?程序是怎么解释的?
而且为什么@{print F $a}=qw(1 2 3); @{"$a"}=qw(1 2 3);两句都不报错?

论坛徽章:
0
8 [报告]
发表于 2004-12-14 14:21 |只看该作者

如何用一个变量值命名一个hash的array?

  1. #!/usr/bin/perl

  2. #use strict;
  3. no strict 'refs';
  4. my $b="array";

  5. push @{$b},{"1"=>;"aaaaaaa"};
  6. push @{$b},{"2"=>;"sssssssss"};

  7. print ${$b}[0]->;{1},"\n";
  8. print $array[1]->;{2},"\n";
复制代码

论坛徽章:
0
9 [报告]
发表于 2004-12-14 14:24 |只看该作者

如何用一个变量值命名一个hash的array?

呵呵  dumper可以解决

论坛徽章:
0
10 [报告]
发表于 2004-12-14 15:54 |只看该作者

如何用一个变量值命名一个hash的array?

刚才是我想错了,我觉得这样更好些~

  1. #!/bin/perl
  2. #use strict;
  3. no strict 'refs';
  4. my $a="array";
  5. *{$a}=[1,2,3];
  6. print @array;
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP