将Perl5代码迁移到Perl6上的解决方案实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“将Perl5代码迁移到Perl6上的解决方案”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
实际处理时,无论您是一个正在将Perl 5代码转换为Perl 6同时遇到一些问题的程序员,还是您只是想了解如果您尝试将Perl 5程序移植到Perl 6可能会发生什么,本文应该回答您的问题。
结合项目来看,Perl 6文档已经包含了大部分(如果不是全部)你需的文件要解决将Perl 5代码迁移到Perl 6时所面临的问题,请执行以下操作。但是,正如文件所述,重点是事实上的差异。我将尝试更深入地讨论具体问题,同时根据我将相当多的Perl 5代码移植到Perl 6的经验,提供更多的第一手信息。
Perl 6怎么样?
结合项目来看,很好,谢谢!自2015年12月第一次正式发布以来,RakudoPerl 6经历了数量级的改进和相当多的bug修复(总计超过14,000次提交)。到目前为止,已经出版了七本关于Perl 6的书。学习Perl 6作者布赖恩·D·福伊不久将由奥赖利出版,他是在精辟的基础上重新创作的。学习Perl(又称“拉玛书”)许多人已经认识同时爱上了。
理解这一步时,用户分布拉库多星处于三个月的发布周期,在Perl 6生态系统。RakudoCompiler版本处于每月发布周期,通常包含30多人的贡献。Perl 6模块上载到Perl编程作者上传服务器(停顿)同时采用PerlArchive综合网络(CPAN).
在这个场景下,网上Perl 6简介文档已经被翻译成12种语言,用他们的母语教了30多亿人关于Perl 6的知识。最近的化身Perl 6周刊自2014年2月以来,每周都会报告Perl 6的所有内容。
结合项目来看,CRO一个微服务框架,自始至终采用Perl 6的所有特性,提供HTTP1.1持久连接、HTTP2.0和请求多路复用,HTTPS提供可选的证书颁发机构。和一个Perl 6 IDE现在正处于(付费)beta版(把它想象成一个具有即时可交付性的Kickstart)。
在Perl 6中采用Perl 5特性
结合项目来看,能够采用Inline::Perl5模块,制造全的CPAN任何Perl 6程序都能够采用。这能够被视为欺骗,因为它将嵌入perl 5解释器,所以继续依赖于perl(5)运行时。但它是吗?只需添加以下内容,就能够轻松地运行perl 6代码(如果您需访问尚未移植的模块):只需将:从<Perl 5>添加到USE语句,就像USE DBI:from<Perl 5>;。
从实现思路看,2018年1月,我提议CPAN蝴蝶计划若要将Perl 5功能转换为Perl 6,请尽可能地将其转换为原始API。我说这是一个目标,因为Perl 5(作为一种编程语言)不仅仅是语法。如果问任何人Perl的独特卖点是什么,他们很可能会告诉您它是CPAN。所以,我认为是时候从Perl宇宙的这个角度出发了:
以一种更现代的观点:
换句话说,将作为Perl最重要元素的CPAN放在中间。
转换语义
落到代码里,要在Perl 6中本机运行Perl 5代码,还需大量Perl 5语义。Perl 6中提供的对Perl 5语义的兼容(可选)降低了Perl 5程序员在试图采用Perl 6编程时感知到的概念阈值。在家感觉更容易!
理解这一步时,自从CPAN蝴蝶计划发布以来,Perl 6中兼容了100多个内置Perl 5函数,同时具有相同的API。Perl 6中已有许多函数,但语义略有不同,比如,function shift() { [native code] }在perl 5中神奇地从@_(或@ARGV)如果没有指定参数;在Perl 6中,该参数是必需的。
结合项目来看,还将50多个Perl 5 CPAN发行版移植到Perl 6中,同时遵循最初的Perl 5 API。这些包括核心模块,如标量:util和清单:util,但也包括非核心模块,如案文:CSV和Memoize。CPAN上游的分布对生态系统有尽可能大的影响。
摘要
在这个场景下,Rakudo Perl 6的成熟方式使得采用Perl 6现在是新建新的交互式项目的可行方法。能够采用可靠的、经过验证的Perl 5语言组件有助于降低开发人员采用Perl 6的阈值,同时且它建立在Perl 5和Perl 6之和大于其部分的情况下。
总结
从实现思路看,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的兼容。如果你想了解更多相关内容请查看下面相关链接
您可能感兴趣的文章:
- Perl5和Perl6对比采用Sigils的差别
- Perl6中的垃圾收集
- 强大的Perl正则表达式实例详解
- Perl中的符号 ->;、=>; 和 :: 分别表示什么意思?
- Perl中常用符号与操作
- Perl学习教程之单行命令详解
- Perl时间处理函数用法介绍
- Perl字符串处理函数大全
- 详解linux下批量替换文件内容的三种方法(perl,sed,shell)
- Perl与JS的对比分析(数组、哈希)
- 采用Perl生成随机密码
- ASP.NET中HyperLink超链接控件的采用方法
-
08.31
掌上高考app往年高考真题下载入口
-
08.31
宝玩poki游戏入口官网
-
08.31
poki宝玩小游戏免费入口官网
-
08.31
《anki》使用操作步骤
-
08.31
《夜幕之下》复仇童谣说明
-
08.31
kiz10网页版入口官网免费玩
-
-
- 酷酷跑app游戏云存档使用做法
- 08.31
-
- 《termius》使用操作步骤
- 08.31
-
-
- 《叠入深渊》英雄排名一览
- 08.31
-
- 原神3月7日兑换码2026
- 08.31
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏