免费注册 查看新帖 |

Chinaunix

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

perl 数组问题,请教了! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-21 21:54 |只看该作者 |倒序浏览
#!/usr/bin/perl -w

use strict;

my @test = qw{test1 test2 test3 test4 test5 test6};

for(my $j=0;$j<scalar(@test);$j++){

         print "$test[$j]\n";
       ??????????????????????????  my $($zahl[$j])=0;出错!!
}

我想要达到:
$test1 = 0;
$test2 = 0;
$test3 = 0;
$test4 = 0;
$test5 = 0;
$test6 = 0;

也就是要初始化。

在for中应该怎么写的?

先谢谢大家了!

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
2 [报告]
发表于 2011-04-21 22:06 |只看该作者
你思路有问题,用个 hash 表示不就行了?  $hash{'test1'} = 0;
刚入门的人不该用符号引用,已经入门的人一般也不需要用。你还是先学学 for my $var (@test) { } 的用法实在啊

论坛徽章:
0
3 [报告]
发表于 2011-04-21 22:52 |只看该作者
#!/usr/bin/perl

my @a =(\$test1,\$test2,\$test3,\$test4,\$test5);
map {$$_=0;} @a;

献丑了...kkk

论坛徽章:
0
4 [报告]
发表于 2011-04-21 22:59 |只看该作者
我的目的还有一个是: 不只是$test作为数值用,还要test作为字串用,比如
  $i == 0 && do { $test1++;print "test1 = $test1"; last SWITCH; };
我先在有test1到test10000, 我想用一个array加入test1到10000,然后用for语句初始化,就可以一直使用。
不用我写10000条上面的SWITCH语句和10000条初始化语句。

只有java的一点编程经验,perl学了3天,现在就有一个过滤程序。没有办法啊!

如果有时间,请给个例子。

谢谢了!

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
5 [报告]
发表于 2011-04-21 23:07 |只看该作者
my %hash;

$hash{"test$_"} = 0 for 1 .. 1000;

# 处理

for my $name (sort keys %hash) {
    my $value = $hash{$name};
    print "$name = $value\n";
}

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
6 [报告]
发表于 2011-04-21 23:11 |只看该作者
通过字符串名字访问的变量是全局变量在符号表中,还是个 hash。用自己的 hash 更安全可控

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
7 [报告]
发表于 2011-04-22 08:48 |只看该作者
题目与内容不符...看起来又是思路错误......

论坛徽章:
0
8 [报告]
发表于 2011-04-26 15:39 |只看该作者
本帖最后由 robinylp 于 2011-04-26 15:53 编辑
my %hash;

$hash{"test$_"} = 0 for 1 .. 1000;

# 处理

for my $name (sort keys %hash) {
    m ...
zhlong8 发表于 2011-04-21 23:07



    感谢了!去试试。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2011-04-26 15:59 |只看该作者
zhlong8 的回答是正确的。

这个问题已经被问过八百遍了,
而之前曾经有太多太多的人喜欢在这个问题中回答符号引用,
实在搞不懂这些回答者在展示了自己对 Perl 语法很熟练的同时所展示出来的低下的理解能力是否是出于自己的本意。

论坛徽章:
0
10 [报告]
发表于 2011-04-26 16:26 |只看该作者
zhlong8 的回答是正确的。

这个问题已经被问过八百遍了,
而之前曾经有太多太多的人喜欢在这个问题中回 ...
flw 发表于 2011-04-26 15:59



因为我们对于perl的学习不是第一们编程,以及没有很多经验,比如我的思路绝对是由于java和c而形成的,这样的东西习惯于用数组来表示,而上面这样的思路对于新手来说很难理解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP