perl5和perl6_将Perl 5代码迁移到Perl 6

perl5和perl6

无论您是正在采取第一步将Perl 5代码转换为Perl 6并遇到一些问题的程序员,还是只是想了解如果尝试将Perl 5程序移植到Perl 6将会发生什么情况。应该回答你的问题。

Perl 6文档已经包含了大多数(如果不是全部) 文档,这些文档是您处理将Perl 5代码迁移到Perl 6时将遇到的问题所需的 。但是,随着文档的发展,重点是事实差异。 根据我将很多Perl 5代码移植到Perl 6的经验,我将尝试更深入地研究特定问题并提供更多动手信息。

无论如何,Perl 6怎么样?

很好,谢谢! 自2015年12月首次正式发布以来,Rakudo Perl 6有了一个数量级的改进,并修复了许多错误(总共提交了14,000多个错误)。 到目前为止,已经出版了七本有关Perl 6的书。 Brian D. Foy所著的Learning Perl 6将很快被O'Reilly出版,它已经从许多人都认识和喜爱的具有开创性的Learning Perl (又名“ The Llama Book”)中重新编写。

用户发行的Rakudo Star的发布周期为三个月, Perl 6生态系统中提供了1,100多个模块。 Rakudo编译器发布按月发布,通常包含30多人的稿件。 Perl 6模块被上载到Perl编程作者上载服务器( PAUSE ),并使用综合Perl存档网络( CPAN )在世界范围内分发。

在线Perl 6简介文档已被翻译成12种语言,以其母语向30亿多人介绍了Perl 6。 自2014年2月以来, Perl 6 Weekly的最新版本每周都在报告Perl 6的所有情况。

Cro是一个微服务框架,它从头开始使用Perl 6的所有功能,提供HTTP 1.1持久连接,具有请求多路复用的HTTP 2.0和具有可选证书颁发机构的HTTPS。 Perl 6 IDE现在处于(付费)测试版中(可以将其视为具有立即交付成果的Kickstarter)。

在Perl 6中使用Perl 5功能

可以使用Inline::Perl5模块将Perl 5代码与Perl 6无缝集成,从而使所有 CPAN均可用于任何Perl 6程序。 这将被视为作弊,因为它将嵌入Perl 5解释器,因此继续依赖于perl (5)运行时。 但是,通过在您的use语句中添加:from<Perl5>就像use DBI:from<Perl5>;一样,它确实很容易使您的Perl 6代码运行(如果您需要访问尚未移植的模块) use DBI:from<Perl5>;

在2018年1月,我提出了一项CPAN Butterfly Plan ,将Perl 5功能转换为与原始API尽可能接近的Perl 6。 我之所以说这是一个目标,是因为Perl 5(作为一种编程语言)不仅仅是语法。 询问任何人Perl的独特卖点是什么,他们很可能会告诉您这是CPAN。 因此,我认为是时候摆脱Perl的这种观点了:

Dromecentric view

从更现代的角度来看:

Cpannican view

换句话说:将CPAN作为Perl最重要的元素放在中心。

转换语义

自从CPAN Butterfly Plan发布以来,具有相同API的Perl 6现在支持100多个内置Perl 5函数。 Perl 6中已经存在许多函数,但语义略有不同,例如,如果未指定任何参数,则Perl 5中的shift神奇地从@_ (或@ARGV )移出。 在Perl 6中,该参数是必需的。

在遵循原始Perl 5 API的同时,已经将50多种Perl 5 CPAN发行版移植到了Perl 6。 其中包括核心模块(例如Scalar :: UtilList :: Util) ,以及非核心模块(例如Text :: CSVMemoize)CPAN河上游的分布旨在尽可能对生态系统产生影响。

摘要

Rakudo Perl 6已经成熟,以至于现在使用Perl 6是创建新的交互式项目的可行方法。 能够使用可靠且经过验证的Perl 5语言组件有助于降低开发人员使用Perl 6的门槛,并朝着Perl 5和Perl 6之和变得更大的局面发展。

翻译自: https://opensource.com/article/18/8/migrating-perl-5-perl-6

perl5和perl6

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值