免费注册 查看新帖 |

Chinaunix

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

一句代码解析,关于Sub的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-01 11:49 |只看该作者 |倒序浏览
初学者问问题:

my( $yy, $mm ,$dd ) = sub {($_[5]+1900, $_[4]+1, $_[3])}->(localtime);

不理解这里的sub的用法,sub{($v1,$v2,$v3)}->(localtime);
这里是列表上下文,localtime返回

   #  0    1      2       3         4       5       6        7        8
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)

->的作用是什么?赋值?
sub这里没用用函数名?为什么?函数体怎么是一个列表而已?

如果我需要理解,有什么好资料可以推荐?

论坛徽章:
0
2 [报告]
发表于 2013-06-01 12:41 |只看该作者
sub  {}匿名函数,看成是$coderef->(args)就行了,args是localtime返回值,这个$coderef->(args)返回一个3值列表

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
3 [报告]
发表于 2013-06-01 16:04 |只看该作者
$a=sub{($v1,$v2,$v3)};

$b=$a->(localtime);
两步并成一步

论坛徽章:
0
4 [报告]
发表于 2013-06-01 18:56 |只看该作者
给力啊, 学习了. 可以比较方便的针对列表中不同元素做不同的操作....

论坛徽章:
0
5 [报告]
发表于 2013-06-02 12:15 |只看该作者
先执行应该是localtime,这里->是解子程序应用。localtime返回的的列表作为参数列表转递给sub函数,

但中间的sub使用我不是很熟悉。

什么叫匿名函数?为什么要有这种函数?主要是干啥用的?有啥好处?顶起来,希望高手给个通俗易懂的解释。谢谢!

论坛徽章:
0
6 [报告]
发表于 2013-06-03 08:21 |只看该作者
先看看书吧,都有讲的

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
7 [报告]
发表于 2013-06-03 20:38 |只看该作者
  1. my( $yy, $mm ,$dd ) = sub {($_[5]+1900, $_[4]+1, $_[3])}->(localtime);
复制代码
谢谢!学习了!

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2016-08-05 14:22:52
8 [报告]
发表于 2013-06-03 21:10 |只看该作者
不是很理解,

论坛徽章:
0
9 [报告]
发表于 2013-06-03 21:21 |只看该作者
受教了,以前真没注意到这种写法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP