免费注册 查看新帖 |

Chinaunix

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

复杂hash解读疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-24 15:14 |只看该作者 |倒序浏览
PERL太博大精深了.....
下面是某大神写的代码:
看了一下没看明白
Question:
1)这个是不是一个嵌套hash? 最后的一步
method => sub { @_ },
                A1         => 'TEST1',
                A2         => 'TEST2',
                A3         => 'TEST3'
这个用到了sub{@_}的意思是什么意思?大神们能不能用另外的方式把上面的代码重写一下?
2)怎么把代码中的A1或A2对应的值打印出来?用print "$config{&CONFIG}{method}->{A1}";
打印出来的是空白

谢谢!


代码如下:
use constant CONFIG        => 'detail';
my %conf = (
        detail => {
                method => sub { @_ },
                A1         => 'TEST1',
                A2         => 'TEST2',
                A3         => 'TEST3'
                        },
);


论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
2 [报告]
发表于 2015-06-24 15:21 |只看该作者
回复 1# sandy_amao

把代码中的A1或A2对应的值打印出来?
用print
print "$config{CONFIG}{A1}";
   

论坛徽章:
0
3 [报告]
发表于 2015-06-24 15:28 |只看该作者
回复 2# substr函数

不行啊!打不出来

   

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
4 [报告]
发表于 2015-06-24 15:37 |只看该作者
回复 3# sandy_amao

print $conf{detail}{A1};


   

论坛徽章:
0
5 [报告]
发表于 2015-06-24 15:41 |只看该作者
substr函数 发表于 2015-06-24 15:37
回复 3# sandy_amao

print $conf{detail}{A1};


可以了。谢谢


这么看来,下面的这个代码是多余的?删除了也可以啊
method => sub { @_ },

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
6 [报告]
发表于 2015-06-24 15:42 |只看该作者
这个sub
my @confusing = $conf{detail}{method}("hello", "world");
print "@confusing";

论坛徽章:
0
7 [报告]
发表于 2015-06-24 16:03 |只看该作者
substr函数 发表于 2015-06-24 15:42
这个sub
my @confusing = $conf{detail}{method}("hello", "world");
print "@confusing";



啊大师,我明了:你的意思是用这个sub是用来接收数组的。

论坛徽章:
0
8 [报告]
发表于 2015-06-26 00:37 |只看该作者
method => sub { @_ }
这个应该是用来接收定义的方法,实际上整个method、A1、A2是detail hash的内容,应该是这样的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP