专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>perl>

perl6元操作符的hyper操作符

百度收藏 QQ搜藏

作者:chinaunix的xiaoyafeng
我们先了解什么叫做hyper操作符?
perl官方解释:所有>>, <<(包括uinicode),用来对一个list中的所有元素做某一操作,并返回一个list.也就是说,类似 perl5中的map,不过功能更强大。

现在我们可以来看看hyper操作符的强大功能,如下:

(1,2,3,4)>> +<<(1, 2, 3, 4)  #(2, 4, 6, 8)
(1, 2, 3, 4) >>+ >>1            #(2, 3, 4, 5) 注意hyper操作符的方向!!
(1, 2, 3, 4) >>++               #(2, 3, 4, 5) 注意hyper操作符的方向!
@PP >>+=                        #  @PP所有元素自增1

如果hyper操作符两边有一个属于scalar(这个在perl6 里也叫item),perl6会自动强制转换,但是前提要求是hyper操作符的方向应指向该元素。(见例2)

在 perl6里面, 方法可以近似看做“后操作符”. (备注:perl6的操作符分为 prefix op, infix op, 和 postfix op。有兴趣的人可以查看syn),所以当然还可以这样使用:

(1, 2, 3, 4). >>++         #同上
(1, 2, 3, 4) >> .++            #同上
稍微巧妙一点:
@objects >> .run               #顺序执行run
("a", "bb", "ccc") >> .char    # (1, 2, 3)

hash也是一种list,所以也可以使用hyper操作符。不过是以key作为项的,而且hyper符的方向起到了类似sql语句中左包含,右包含的作用。见下例:

%a >>+<< %b    #既包含%a 又 包含%b的元素才相加
%a <<+>>%b     # 全包含
%a >>+>>%b     # 包含%b
%a <<+<<%b     # 包含%a

好了,上面展示了一些hyper操作符的基本应用。大家可以多试试,或者查看文档,好好领会perl6中新的操作符。

上一篇:没有了 下一篇:perl的map函数及用法示例(一)

power by soyo123 2007-2008