免费注册 查看新帖 |

Chinaunix

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

perl如何根据字符串调用同名变量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-10 09:24 |只看该作者 |倒序浏览
比如我一系列数组 @all,...
然后有一系列字符串 $str = 'all at the night', ...
因为每个字符串的第一个单词都有一个同名的数组,然后我需要把字符串中后面的单词都储存到第一个单词对应的数组中,怎么直接利用这个单词调用对应的数组呢?

论坛徽章:
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 [报告]
发表于 2012-10-10 09:51 |只看该作者
你应该用个 hash,键为第一个单词值是个数组引用。

论坛徽章:
0
3 [报告]
发表于 2012-10-10 10:53 |只看该作者
回复 2# zhlong8
  1. no strict qw(refs);
  2. $str = 'all at this night';
  3. my @t  = split / /, $str;
  4. my $name =  shift @t;
  5. push @{"$name"}, @t;
  6. print join("\t", @{"$name"}), "\n";
复制代码
这种方法也可以,不需要事先声明变量。不过hash也挺方便的。

论坛徽章:
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
4 [报告]
发表于 2012-10-10 11:09 |只看该作者
回复 3# picbhan


    这就是许多人称 Perl 为 read only 时所指的那类代码。可以干活但作为初学者你会付出养成坏的编程习惯的代价。要是一直这么硬来过不了多久你就会变成 Perl 坚定的反对者,然后换到一门不允许这么干的语言去了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP