無論您是一個正在將Perl 5代碼轉(zhuǎn)換為Perl 6并遇到一些問題的程序員,還是您只是想了解如果您嘗試將Perl 5程序移植到Perl 6可能會發(fā)生什么,本文應(yīng)該回答您的問題。
Perl 6文檔已經(jīng)包含了大部分(如果不是全部)你需要的文件要解決將Perl 5代碼遷移到Perl 6時所面臨的問題,請執(zhí)行以下操作。但是,正如文件所述,重點是事實上的差異。我將嘗試更深入地討論具體問題,并根據(jù)我將相當多的Perl 5代碼移植到Perl 6的經(jīng)驗,提供更多的第一手信息。
Perl 6怎么樣?
很好,謝謝!自2015年12月第一次正式發(fā)布以來,RakudoPerl 6經(jīng)歷了數(shù)量級的改進和相當多的bug修復(總計超過14,000次提交)。到目前為止,已經(jīng)出版了七本關(guān)于Perl 6的書。學習Perl 6作者布賴恩·D·福伊不久將由奧賴利出版,他是在精辟的基礎(chǔ)上重新創(chuàng)作的。學習Perl(又稱“拉瑪書”)許多人已經(jīng)認識并愛上了。
用戶分布拉庫多星處于三個月的發(fā)布周期,在Perl 6生態(tài)系統(tǒng)。RakudoCompiler版本處于每月發(fā)布周期,通常包含30多人的貢獻。Perl 6模塊上載到Perl編程作者上傳服務(wù)器(停頓)并使用PerlArchive綜合網(wǎng)絡(luò)(CPAN).
網(wǎng)上Perl 6簡介文檔已經(jīng)被翻譯成12種語言,用他們的母語教了30多億人關(guān)于Perl 6的知識。最近的化身Perl 6周刊自2014年2月以來,每周都會報告Perl 6的所有內(nèi)容。
CRO一個微服務(wù)框架,自始至終使用Perl 6的所有特性,提供HTTP1.1持久連接、HTTP2.0和請求多路復用,HTTPS提供可選的證書頒發(fā)機構(gòu)。和一個Perl 6 IDE現(xiàn)在正處于(付費)beta版(把它想象成一個具有即時可交付性的Kickstart)。
在Perl 6中使用Perl 5特性
可以使用Inline::Perl5模塊,制造全的CPAN任何Perl 6程序都可以使用。這可以被視為欺騙,因為它將嵌入perl 5解釋器,因此繼續(xù)依賴于perl(5)運行時。但它是嗎?只需添加以下內(nèi)容,就可以輕松地運行perl 6代碼(如果您需要訪問尚未移植的模塊):只需將:從Perl 5>添加到USE語句,就像USE DBI:fromPerl 5>;。
2018年1月,我提議CPAN蝴蝶計劃若要將Perl 5功能轉(zhuǎn)換為Perl 6,請盡可能地將其轉(zhuǎn)換為原始API。我說這是一個目標,因為Perl 5(作為一種編程語言)不僅僅是語法。如果問任何人Perl的獨特賣點是什么,他們很可能會告訴您它是CPAN。因此,我認為是時候從Perl宇宙的這個角度出發(fā)了:
以一種更現(xiàn)代的觀點:
換句話說,將作為Perl最重要元素的CPAN放在中間。
轉(zhuǎn)換語義
要在Perl 6中本機運行Perl 5代碼,還需要大量Perl 5語義。Perl 6中提供的對Perl 5語義的支持(可選)降低了Perl 5程序員在試圖使用Perl 6編程時感知到的概念閾值。在家感覺更容易!
自從CPAN蝴蝶計劃發(fā)布以來,Perl 6中支持了100多個內(nèi)置Perl 5函數(shù),并具有相同的API。Perl 6中已有許多函數(shù),但語義略有不同,例如,function shift() { [native code] }在perl 5中神奇地從@_(或@ARGV)如果沒有指定參數(shù);在Perl 6中,該參數(shù)是必需的。
還將50多個Perl 5 CPAN發(fā)行版移植到Perl 6中,同時遵循最初的Perl 5 API。這些包括核心模塊,如標量:util和清單:util,但也包括非核心模塊,如案文:CSV和Memoize。CPAN上游的分布對生態(tài)系統(tǒng)有盡可能大的影響。
摘要
Rakudo Perl 6的成熟方式使得使用Perl 6現(xiàn)在是創(chuàng)建新的交互式項目的可行方法。能夠使用可靠的、經(jīng)過驗證的Perl 5語言組件有助于降低開發(fā)人員使用Perl 6的閾值,并且它建立在Perl 5和Perl 6之和大于其部分的情況下。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:- Perl5和Perl6對比使用Sigils的差別
- Perl6中的垃圾收集
- 強大的Perl正則表達式實例詳解
- Perl中的符號 ->;、=>; 和 :: 分別表示什么意思?
- Perl中常見符號與操作
- Perl學習教程之單行命令詳解
- Perl時間處理函數(shù)用法介紹
- Perl字符串處理函數(shù)大全
- 詳解linux下批量替換文件內(nèi)容的三種方法(perl,sed,shell)
- Perl與JS的對比分析(數(shù)組、哈希)
- 使用Perl生成隨機密碼
- ASP.NET中HyperLink超鏈接控件的使用方法