無論您是一個(gè)正在將Perl 5代碼轉(zhuǎn)換為Perl 6并遇到一些問題的程序員,還是您只是想了解如果您嘗試將Perl 5程序移植到Perl 6可能會(huì)發(fā)生什么,本文應(yīng)該回答您的問題。
Perl 6文檔已經(jīng)包含了大部分(如果不是全部)你需要的文件要解決將Perl 5代碼遷移到Perl 6時(shí)所面臨的問題,請(qǐng)執(zhí)行以下操作。但是,正如文件所述,重點(diǎn)是事實(shí)上的差異。我將嘗試更深入地討論具體問題,并根據(jù)我將相當(dāng)多的Perl 5代碼移植到Perl 6的經(jīng)驗(yàn),提供更多的第一手信息。
Perl 6怎么樣?
很好,謝謝!自2015年12月第一次正式發(fā)布以來,RakudoPerl 6經(jīng)歷了數(shù)量級(jí)的改進(jìn)和相當(dāng)多的bug修復(fù)(總計(jì)超過14,000次提交)。到目前為止,已經(jīng)出版了七本關(guān)于Perl 6的書。學(xué)習(xí)Perl 6作者布賴恩·D·福伊不久將由奧賴?yán)霭?,他是在精辟的基礎(chǔ)上重新創(chuàng)作的。學(xué)習(xí)Perl(又稱“拉瑪書”)許多人已經(jīng)認(rèn)識(shí)并愛上了。
用戶分布拉庫多星處于三個(gè)月的發(fā)布周期,在Perl 6生態(tài)系統(tǒng)。RakudoCompiler版本處于每月發(fā)布周期,通常包含30多人的貢獻(xiàn)。Perl 6模塊上載到Perl編程作者上傳服務(wù)器(停頓)并使用PerlArchive綜合網(wǎng)絡(luò)(CPAN).
網(wǎng)上Perl 6簡介文檔已經(jīng)被翻譯成12種語言,用他們的母語教了30多億人關(guān)于Perl 6的知識(shí)。最近的化身Perl 6周刊自2014年2月以來,每周都會(huì)報(bào)告Perl 6的所有內(nèi)容。
CRO一個(gè)微服務(wù)框架,自始至終使用Perl 6的所有特性,提供HTTP1.1持久連接、HTTP2.0和請(qǐng)求多路復(fù)用,HTTPS提供可選的證書頒發(fā)機(jī)構(gòu)。和一個(gè)Perl 6 IDE現(xiàn)在正處于(付費(fèi))beta版(把它想象成一個(gè)具有即時(shí)可交付性的Kickstart)。
在Perl 6中使用Perl 5特性
可以使用Inline::Perl5模塊,制造全的CPAN任何Perl 6程序都可以使用。這可以被視為欺騙,因?yàn)樗鼘⑶度雙erl 5解釋器,因此繼續(xù)依賴于perl(5)運(yùn)行時(shí)。但它是嗎?只需添加以下內(nèi)容,就可以輕松地運(yùn)行perl 6代碼(如果您需要訪問尚未移植的模塊):只需將:從<Perl 5>添加到USE語句,就像USE DBI:from<Perl 5>;。
2018年1月,我提議CPAN蝴蝶計(jì)劃若要將Perl 5功能轉(zhuǎn)換為Perl 6,請(qǐng)盡可能地將其轉(zhuǎn)換為原始API。我說這是一個(gè)目標(biāo),因?yàn)镻erl 5(作為一種編程語言)不僅僅是語法。如果問任何人Perl的獨(dú)特賣點(diǎn)是什么,他們很可能會(huì)告訴您它是CPAN。因此,我認(rèn)為是時(shí)候從Perl宇宙的這個(gè)角度出發(fā)了:

以一種更現(xiàn)代的觀點(diǎn):

換句話說,將作為Perl最重要元素的CPAN放在中間。
轉(zhuǎn)換語義
要在Perl 6中本機(jī)運(yùn)行Perl 5代碼,還需要大量Perl 5語義。Perl 6中提供的對(duì)Perl 5語義的支持(可選)降低了Perl 5程序員在試圖使用Perl 6編程時(shí)感知到的概念閾值。在家感覺更容易!
新聞熱點(diǎn)
疑難解答
圖片精選