遇到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的官方网站是

http://www.perl6.org/

他还有一只吉祥物,一只五颜六色的蝴蝶,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了。。

perl6的介绍与下载编译安装的更多相关文章

  1. 【转载】STM32 ST-LINK Utility介绍、下载、安装、使用方法

    转载地址:https://blog.csdn.net/ybhuangfugui/article/details/52597133 总结的很好!!! Ⅰ.写在前面本文讲述的内容是STM32 ST-LIN ...

  2. 【转】IAR for STM8介绍、下载、安装与注册

    Ⅰ.写在前面 本文讲述的内容是IAR for STM8(EWSTM8)的介绍.下载.安装与注册,其安装.注册过程和IAR for ARM类似,如果需要了解IAR for ARM相关的文章,可以到我博客 ...

  3. IAR for STM8介绍、下载、安装与注册--转

    Ⅰ.写在前面 本文讲述的内容是IAR for STM8的介绍.下载.安装与注册,其安装.注册过程和IAR for ARM类似,如果需要了解IAR for ARM相关的文章,可以到我博客,或微信公众号查 ...

  4. Microsemi Libero系列教程(一)——Libero开发环境介绍、下载、安装与注册

    前言 相比与Xilinx和Altera在国内的市场,Microsemi的FPGA在国内应用很少很少,网上几乎没有详细的教程,刚开始使用时,遇到了各种问题,自己也走了不少弯路.本系列教程以Libero ...

  5. git-2.10.2-64-bit介绍&&git下载&&git安装教程

    Git介绍 分布式:Git系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具. 保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态:可以在该保存点将 ...

  6. jmeter--001.介绍、下载与安装

    一.介绍 使用场景: -1.接口测试 -2.性能测试 .... 特点: -1.开源.轻量级.插件化 -2.适合自动化和持续集成 二.下载(Windows环境) 下载网址:http://jmeter.a ...

  7. 【CPLEX教程01】Cplex介绍,下载和安装Cplex

    前言 最近学习列生成算法,需要用到优化求解器.所以打算学习一下cplex这个商业求解器. 当然也有其他更多的选择,这里暂时以比较容易上手和性能比较好的cplex开始吧.其实,小编也早就想学习使用这个c ...

  8. 第一节 MongoDB介绍及下载与安装

    引言 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类 ...

  9. MongoDB介绍及下载与安装

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.M ...

随机推荐

  1. sqlite的事务

    好久没用数据库,知识都忘了,之前用sqlite 逐行insert数据,发现这性能实在是太坑,10w条数据,插入大约花了100来分钟. 后来发现还有事务这么一个东西,可以大幅度降低对io的操作,测试插入 ...

  2. js复制对象 和 节点类型和NodeList

    1. myList.cloneNode(true); 在参数为true的情况下,执行深复制,也就是复制节点及其整个子节点树,包括属性 2. myList.cloneNode(false); 在参数为f ...

  3. 鼠标悬停移除更换class

    $("#xinl").mouseover(function()  //鼠标悬停执行函数 { $(".xl").removeClass().addClass(&q ...

  4. JAVA单元测试Junit

    1.为什么要用Junit 做了很多项目,几乎没怎么用过Java的单元测试,是因为它没有用吗?显然不是,是自己的开发方式太不规范!对于大型的软件项目,单元测试不仅有效实用,还非常有必要!它能够测试每个方 ...

  5. JavaWeb学习笔记--2.jsp指令元素、动作元素、内置对象

    目录: 一.指令 1.1 page指令 :page指令有13种属性 1.2 include指令:include指令有1种属性,为file.(注意<%@ include%>和<jsp: ...

  6. Jasper_passValue_return value from the subreport to main report

    create a variable In subreport  say returnValue variable class type --> whatever u want calculati ...

  7. 介绍一个成功的 Git 分支模型 Release 分支

    英文原文: http://nvie.com/posts/a-successful-git-branching-model/ 中文版: 在这篇文章中,我提出一个开发模型.我已经将这个开发模型引入到我所有 ...

  8. wordpress显示多个分类的文章

    显示多个分类下的文章可以这样提取: <?php query_posts(array('posts_per_page'=>10,'orderby'=>'rand','category_ ...

  9. AOP技术基础

    1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...

  10. logstash 防止实际处理时间跟事件产生时间略有偏差

    "message" => " 10.168.255.134 [12/Sep/2016:16:30:40 +0800] \"GET /resources/p ...