您的位置:首页 > 手游攻略 > 将Perl5代码迁移到Perl6上的解决方案实用指南

将Perl5代码迁移到Perl6上的解决方案实用指南

作者:互联网  时间: 2026-08-31 14:50:01  

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“将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超链接控件的采用方法

最新游戏

更多

Copyright©2010-2019. All rights reserved | 波波三国游戏官网|[email protected]

备案编号:湘ICP备2022015115号-4