遇到perl6
一直想认真的学习一门脚本语言或者与之类似的语言,因为相对与c++/c来说,一些工作可以很方便的用脚本语言来解决,比如对于日志文件的处理,自动ftp上传。
也看过不少语言的介绍,比如python,ruby,erlang,go等等,由于本人是c语言入门,后来学习中转向了c++,所以习惯了c/c++的编程风格,对于python的
语言风格无法认同,tab缩进区分代码块什么的简直反人类。。。喜欢python的不要打我。。。至于erlang,纯粹的函数式语言,用起来挺绕的,不是觉得很方便,
erlang和之前的编程习惯相差太大,一开始关注只是因为看到了百万级并发什么,后来才发现不是我的菜。。。
后来无意中,看到了perl,确切的说是perl5,简单的了解了一下, 我就喜欢上了这门语言,再后来在使用的过程中才发现还有perl6,于是秉着向前看的思想决定
前来学习perl6了,因为有了perl5的基础,入门还算容易,就是中文的资料太少了,好多资料都是英文的,"启示录"、入门教程、etc。。。。
perl6介绍
好了,废话完了来介绍一下perl6,perl6的官方网站是
他还有一只吉祥物,一只五颜六色的蝴蝶,perl6一只强力的、功能丰富的编程语言,关于perl6的历史网上有一些介绍这里就不细说了,Larry最初开发perl6的时候
是打算用perl5扩充语法,然后实现perl6,最后实现perl6的bootstrap,不过最后失败了,再后来TW的大神唐宗汉建立了项目pugs,成为了perl6的第一个可用的实现。
目前perl6的编译器有这样几个
1、Rakudo
它可以让perl6运行在MoarVM和JVM以及Parrot上,你可以从这里下载它 http://rakudo.org/how-to-get-rakudo/
2、Niecza
它可以把perl6的代码编译成CLR的代码,让perl6运行在.NET 和Mono上
另外还有STD、viv、NQP、PUGS、perlito
其余的几个编译器是为实现perl6服务的,STD是Larry写的一个标准,perl6的grammar,viv可以使用STD将perl6转换为perl5,STD使用viv来构建
NQP则是用来帮助perl6编写编译器和库的
perl6下载、编译与安装
我们这里下载的是Rakudo Star,windows的是msi安装包,下载地址是
http://rakudo.org/downloads/star/
傻瓜式一键安装,安装完毕后配置一下环境变量即可,不多说了
linux下面是源码编译安装,选择的后端虚拟机是moarVM,不喜欢JVM不说了。。。这里我使用的fedora20系统
首先从Rakudo的git把源代码下载下来,
使用
git clone git://github.com/rakudo/rakudo.git
将源码clone下来即可,如果clone的速度比较慢,你可以去https://github.com/rakudo/rakudo/
下载源码包,解压即可
perl6编译的时候需要perl5,不过一般的linux版本下都自带了perl5,所以不是问题,
perl Configure.pl --gen-moar --gen-nqp --backends=moar --prefix=/usr/local/perl6/
在解压得到的目录或者git得到的目录下执行上面的命令,--backends=moar这个后面的参数是可选的,使用
perl Configure.pl help
可以查看支持的选项,如果有需要的文件程序会自己下载,由于防火墙比较强大,静静的等待clone,
如果安装时缺少了模块,可以下载安装上,例如fedora20是yum install perl-xxxx
clone好了之后使用make编译即可,编译的速度很快,我的物理机是core i3虚拟机编译用了2分钟的样子,
接下来建议执行一下
make test,都是ok就是没有问题了,
最后make install,瞬间完成
最后如果你安装的perl6的路径不在环境变量里,可以执行
ln -s /usr/local/perl6/bin/* /usr/bin/
做一个软连接,然后就可以使用perl6了。。