如何创建这样的子例程
时间:2011-03-20
来源:互联网
也许这个需求不能实现,但我觉得Perl十分灵活和强大,不知道有没有办法。我需要创建如下的子例程:
Sub myFunction("String") Block
也既是说,这个函数包含两个参数,第一个是一个字符串,第二个是一个函数块。 有点类似于 if 语句。 我试着用函数原型的方式来定义,如:sub myFuc ($&) ..., 但不成功。是否有别的方法?
望高手给予解答或提示。
Sub myFunction("String") Block
也既是说,这个函数包含两个参数,第一个是一个字符串,第二个是一个函数块。 有点类似于 if 语句。 我试着用函数原型的方式来定义,如:sub myFuc ($&) ..., 但不成功。是否有别的方法?
望高手给予解答或提示。
作者: fttwho 发布时间: 2011-03-20
本帖最后由 zhlong8 于 2011-03-20 22:17 编辑
BLOCK 只有在第一个参数的时候才能省略 sub 直接用大括号常用的方法是再定义个辅助的函数,比如 as 之类。可以去看看 Try::Tiny 这个模块。类似 Moose 的类型系统中有这么用的,一样的原理
复制代码
不过这都是小技巧而已,真正 NB 的是 Devel::Declare 你去 cpan 看看文档,Moose 有个模块用它实现了 class 关键字
BLOCK 只有在第一个参数的时候才能省略 sub 直接用大括号常用的方法是再定义个辅助的函数,比如 as 之类。可以去看看 Try::Tiny 这个模块。类似 Moose 的类型系统中有这么用的,一样的原理
- subtype 'ModernDateTime'
- => as 'DateTime'
- => where { $_->year() >= 1980 }
- => message { 'The date you provided is not modern enough' };
作者: zhlong8 发布时间: 2011-03-20
又来学习学习
作者: b86873564 发布时间: 2011-03-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28