將Perl5代碼遷移到Perl6上的解決方案
無論您是一個正在將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修復(fù)(總計超過14,000次提交)。到目前為止,已經(jīng)出版了七本關(guān)于Perl 6的書。學(xué)習(xí)Perl 6作者布賴恩·D·福伊不久將由奧賴利出版,他是在精辟的基礎(chǔ)上重新創(chuàng)作的。學(xué)習(xí)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和請求多路復(fù)用,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:from<Perl 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)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對本站的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。