(Translated by https://www.hiragana.jp/)
Perl - 維基百科,自由的百科全書 とべいたり內容

Perl

本頁使用了標題或全文手工轉換
維基百科ひゃっか自由じゆうてき百科全書ひゃっかぜんしょ
Perl
へんほどはんがた多重たじゅうへんほど範式はんしき函數かんすう指令しれいしきめんこう對象たいしょう (類別るいべつためもと)、反射はんしゃ過程かていしき事件じけん驅動くどう泛型
設計せっけいしゃひしげさと·沃爾
じつ作者さくしゃひしげさと·沃爾
めん時間じかん1987ねん12月18にち,​36ねんまえ​(1987-12-18
とうぜん版本はんぽん
  • 5.40.0 (2024ねん6がつ9にち;穩定版本はんぽん)[1]
編輯維基數據鏈接
かたたい系統けいとう動態どうたい
じつさくげんCげん
操作そうさ系統けいとうまたが平台ひらだい
許可きょかしょう藝術げいじゅつ許可きょかきょう 1.0[2][3]
GNU通用つうよう公共こうきょう許可きょかしょう[4]
ぶんけん擴展めい.pl, .pm, .t, .pod
あみwww.perl.org
啟發けいはつげん
AWKCげんC++LispPascal, sedSmalltalk 80Unix shell
影響えいきょうげん
CoffeeScriptECMAScriptGroovy
JavaScriptJuliaLPCPerl 6PHPPythonRubyWindows PowerShell

Perlこれ高階たかしな通用つうよう直譯ちょくやくしき動態どうたいてきほどしきげん家族かぞく最初さいしょ設計せっけいしゃひしげさと·沃爾ためりょうゆずるざいUNIXうえ進行しんこうほうひょう處理しょりてき工作こうさくへんどくさら方便ほうべん決定けってい開發かいはついち通用つうようてき腳本げん,而在1987ねん12月18にち發表はっぴょう目前もくぜん,Perlげん家族かぞく包含ほうがん兩個りゃんこぶんささえPerl 5以及Perl 6。雖然Perl是正ぜせいしきてきくび字母じぼちぢみりゃく[8]ただし仍有各種かくしゅ各樣かくようてきぎゃくこうくび字母じぼちぢみりゃく包括ほうかつ實用じつようてきひっさげ報告ほうこくげん」。[9]

Perl借用しゃくようりょうCsedawkshell腳本、Lisp以及很多其他ほどしきげんてき特性とくせい。其中さい重要じゅうようてき特性とくせいPerl內部集成しゅうせいりょう正則せいそくひょうたちしきてきこうのう,以及巨大きょだいてきだいさんぽうだい碼庫CPAN

2000ねん開始かいしひしげさと·沃爾ちょしゅ開發かいはつPerl 6らい作為さくいPerlてき後繼こうけい,Perl 6げんてき語法ごほうゆう很多轉變てんぺん,也被ためPerl家族かぞくちゅうてきいちげん(Perl 6於2019ねんさらめいためRaku)。[10]

Perlげん應用おうようこう泛,涵蓋CGI圖形ずけいへんほど系統けいとう管理かんりあみからまへんほど金融きんゆう生物せいぶつとう領域りょういきよし於其れい活性かっせい,Perlしょうため腳本げんなかてきみず軍刀ぐんとう[11]

歷史れきし

[編輯へんしゅう]

早期そうき版本はんぽん

[編輯へんしゅう]

ひしげさと·沃爾ざい1987ねん開始かいしうつしさくPerl,せいざいUnisysとうほどじょいん[12]なみ且在1987ねん12月18にち1.0版本はんぽん發布はっぷいたりょうcomp.sources.misc新聞しんぶんぐみ[13]。這個げんざいせっらいてきいくねん內很かい發展はってんおこりらい

沃爾最早もはや的確てきかく這個げんしょうため「Pearl」(ちんたま),いんため希望きぼう自己じこ開發かいはつてきげんゆう一個吉利的名字而且要儘量短小好記,甚至ごえしょうはややめ考慮こうりょ所有しょゆう三個及四個字母的詞彙,以及自己じこ妻子さいしてき名字みょうじGloria。しか而另一門いちもんげんPEARLはややめ存在そんざいためりょう防止ぼうし混淆こんこう,沃爾ざい改名かいめいPerl。

Perl 2,於1988ねん發布はっぷ特色とくしょくゆういちさらこのみてき正則せいそくひょうたちしき引擎,Perl 3,於1989ねん發布はっぷ添加てんかりょうたいしんせいすうよりどころりゅうてき支持しじ

從前じゅうぜん,Perlただ一的文檔是一個逐漸變長的さつぺーじざい1991ねん,《Programming Perl》(許多きょたPerlほどじょいんいんふうめんしょうため駱駝らくだしょ」),出版しゅっぱんりょう,而且變成へんせいりょういち真正しんせいてきPerlげんてき參考さんこう資料しりょう同時どうじ,Perl版本はんぽんごう變成へんせいりょう4,いんため這個げんてき重大じゅうだい改變かいへん,而是いんため這本しょてき特殊とくしゅ意義いぎ

早期そうきてきPerl 5

[編輯へんしゅう]

Perl 4てきいち系列けいれつ維護てき版本はんぽん最後さいごいちはん1993ねんてきPerl 4.036。,沃爾廢棄はいきりょうPerl 4,開始かいし開發かいはつPerl 5。Perl 5てき最初さいしょはじめ設計せっけい持續じぞくいたりょう1994ねん。《perl5-porters郵件れつひょう於1994ねん5がつためりょう共同きょうどう移植いしょくPerl 5而建立こんりゅう。這將主要しゅようてき論壇ろんだんとめきゅうりょうPerl 5てき開發かいはつ,維護,移植いしょく[14]

Perl 5.000於1994ねん10がつ17にち發布はっぷ[15]。這是一個幾乎完全重寫了的解釋かいしゃく,而且它給這個げん添加てんかりょう很多しんてき特性とくせい包括ほうかつ對象たいしょう引用いんよう局部きょくぶ變量へんりょうかたぎかたまり。很重要地ようちかたぎかたまり提供ていきょうりょう一個不用修改直譯器就可以擴展語言的方法。這使とく核心かくしんてき直譯ちょくやく非常ひじょう穩定,そく使つかい允許いんきょ一般いっぱんてきPerlほどじょいん添加てんかしんてきげん特性とくせいしたがえ此,Perl 5てき開發かいはつ就活しゅうかつ躍起やっきらいりょう

Perl 5.001於1995ねん3がつ13にち發布はっぷ。Perl 5.002於1996ねん2がつ29にち發布はっぷおびゆうさんすう類型るいけいてき特性とくせい。這允許いんきょかたまりてき作者さくしゃうつしぞうPerl內部命令めいれいさま智能ちのうてきほどじょ。Perl 5.003於1996ねん6がつ25にち作為さくいいち安全あんぜん更新こうしんてき版本はんぽん發布はっぷ

Perl 5歷史れきしちゅうさい重要じゅうようてき事件じけんいち支持しじりょうかたぎかたまりざい1995ねん10がつ26にちCPANいち發布はっぷPerlかたまりてきもう站,建立こんりゅうりょう;截至2015ねん11月,它已けいゆう超過ちょうか12457作者さくしゃうつしてき157794かたまりりょう[16]

Perl 5.004於1997ねん5がつ15にち發布はっぷ添加てんかりょうUNIVERSALつつめ,這給りょうPerl一個所有的類的基礎和要求使用模塊的特定版本的能力。另いち重要じゅうようてき開發かいはつ包括ほうかつりょうCGI.pmかたぎかたまり[17]ゆうじょ於Perl發展はってんためいちCGI腳本げん[18]

Perl現在げんざい支持しじざいMicrosoft Windowsかず其它いち操作そうさ系統けいとうしもうんさく[17]

Perl 5.005於1998ねん7がつ22にち發布はっぷ。這個版本はんぽん包括ほうかつりょういちさらこのみてき正則せいそく引擎,いちへんやく系統けいとう通過つうかB::*かたぎかたまり),qr//正則せいそく引用いんよう操作そうさいち基礎きそかたまりてき選集せんしゅうなみ且又支持しじりょう一些其它的操作系統,包括ほうかつBeOS[19]

2000ねんいたりいま

[編輯へんしゅう]
主要しゅよう版本はんぽん 最後さいご更新こうしん[20]
きゅう版本はんぽんさい支援しえん 5.5 2004ねん2がつ23にち (2004-02-23)
きゅう版本はんぽんさい支援しえん 5.6 2003ねん11月15にち (2003-11-15)
きゅう版本はんぽんさい支援しえん 5.8 2008ねん12月14にち (2008-12-14)
きゅう版本はんぽんさい支援しえん 5.10 2009ねん8がつ23にち (2009-08-23)
きゅう版本はんぽんさい支援しえん 5.12 2012ねん11がつ10日とおか (2012-11-10)
きゅう版本はんぽんさい支援しえん 5.14 2013ねん3がつ10日とおか (2013-03-10)
きゅう版本はんぽんさい支援しえん 5.16 2013ねん3がつ11にち (2013-03-11)
きゅう版本はんぽんさい支援しえん 5.18 2014ねん10がつ2にち (2014-10-02)
きゅう版本はんぽんさい支援しえん 5.20 2015ねん9がつ12にち (2015-09-12)
きゅう版本はんぽんさい支援しえん 5.22 2017ねん7がつ15にち (2017-07-15)
きゅう版本はんぽんさい支援しえん 5.24 2018ねん4がつ14にち (2018-04-14)
きゅう版本はんぽんさい支援しえん 5.26 2018ねん11月29にち (2018-11-29)
きゅう版本はんぽんさい支援しえん 5.28 2020ねん6がつ1にち (2020-06-01)
きゅう版本はんぽんさい支援しえん 5.30 2020ねん6がつ1にち (2020-06-01)
きゅう版本はんぽんさい支援しえん 5.32 2021ねん1がつ23にち (2021-01-23)
きゅう版本はんぽんさい支援しえん 5.34 2023ねん11月29にち (2023-11-29)
きゅう版本はんぽん,仍被支援しえん 5.36 2023ねん11月29にち (2023-11-29)
とうぜん版本はんぽん 5.38 2023ねん11月29にち (2023-11-29)
格式かくしき
きゅう版本はんぽん
きゅう版本はんぽん,仍被支援しえん
とうぜん版本はんぽん
最新さいしんあずからん版本はんぽん
未來みらい版本はんぽん

Perl 5.6於2000ねん3がつ22にち發布はっぷだいてきおさむあらため包括ほうかつ64支持しじUnicodeくし支持しじだいぶんけん支持しじそく超過ちょうか2GiBてきぶんけん)以及「our」せきかぎ[21][22]ざい開發かいはつPerl 5.6てき時候じこう開發かいはつぐみ決定けってい版本はんぽん名稱めいしょう作成さくせい類似るいじ其它開源かいげん項目こうもくてきざい5.005_63はんこれしたいち版本はんぽん變成へんせいりょう5.5.640,けい劃是開發かいはつ版本はんぽんよう奇數きすう,穩定版本はんぽんよう偶數ぐうすう

2000ねんひしげさと·沃爾詢問しゃたいPerlしん版本はんぽんてき建議けんぎ。這個しんほどてき結果けっかざい361 RFC(評論ひょうろん請求せいきゅうぶんけんさと(這個ぶんけん指導しどうPerl 6てき開發かいはつ)。2001ねん[23]工作こうさく開始かいし設計せっけいPerl 6,一系列的文件概述了新一代Perlさとてき改變かいへん設計せっけい。它們作為さくいいちRFC展示てんじてき,而不いち正式せいしきぶん檔。這時,Perl 6てき存在そんざいかえただ一門語言的概述。

Perl 5.8最初さいしょ於2002ねん7がつ18にち發布はっぷしたがえ此,每年まいとしざいゆういち更新こうしん。Perl 5.8てき最後さいごいちはん5.8.9,發布はっぷ於2008ねん12月14にち。Perl 5.8あらためしんりょうUnicode支持しじ添加てんかりょういちしんてきIO處理しょりせいしんてきせんほど處理しょりひさげだかりょう數字すうじ精度せいど添加てんかりょういち些新かたまり[24]

2004ねん工作こうさく開始かいし於提よう——ばららいてき建議けんぎぶんけんただし後來こうらい變成へんせいりょうPerl 6げんてき詳述しょうじゅつ2005ねん2がつからおおとり開始かいし開發かいはつPugsいちようHaskellうつしてきPerl 6直譯ちょくやく[25]。這是最初さいしょてきいちPerl 6實現じつげん。這個努力どりょく停止ていし於2006ねん[26]

2007ねん12月18にち,Perl 1.0てき20周年しゅうねんねん,Perl 5.10.0發布はっぷりょう。Perl 5.10.0包括ほうかつりょう顯著けんちょてきしん特性とくせい,這拉きんりょうPerl 56これあいだてき距離きょり。這些特性とくせい包括ほうかついちswitch語句ごく英語えいごswitch statementさけべ做「given/when」),正則せいそくひょうたちしきてき更新こうしん智能ちのうひきはい操作そうさ「~~」[27][28]同時どうじ,另いちPerl 6てき實現じつげんRakudo Perlてき開發かいはつ開始かいしりょう一起かずき使用しようParrotきょなずらえ開發かいはつしたがえ2009ねん11月開始かいし,Rakudo Perlやめけい每月まいつきいち更新こうしん現在げんざいやめけいPerl 6てきさいかんせいてきいち實現じつげんりょう

Perl 5開發かいはつ過程かていちゅうてき一次大修改在Perl 5.11;開發かいはつしゃ使用しようりょう每月まいつき更新こうしんてき形式けいしき,這樣就可以提まえあずか3個月かげつ以內てき發布はっぷ

2010ねん4がつ12にち,Perl 5.12.0發布はっぷりょう顯著けんちょてきひさげます包括ほうかつしんてきpackage NAME VERSION語法ごほう,Yada Yada操作そうさ有意ゆういよううらない標記ひょうきぼつゆう實現じつげんてきだい碼),默認もくにんuse strict;ざいuse 5.012;どきかんせいてきY2038へんやく正則せいそく轉化てんかおもDTrace支持しじUnicode5.2[29]。Perl 5.12.3於2011ねん1がつ21にち發布はっぷ;它包括ほうかつりょう新版しんぱんてきかたまりいち些文檔的改變かいへん[30]版本はんぽん5.12.4於2011ねん6がつ20日はつか發布はっぷ

Perl 5.14發布はっぷ於2011ねん5がつ14にち。這個ぶんささえてき最後さいごいちはん,5.14.2,發布はっぷ於2011ねん9がつ26にち

Perl 5.16發布はっぷ於2012ねん5がつ20日はつか顯著けんちょてきしん特性とくせい包括ほうかつ指定していいちperlてきばん本來ほんらい模擬もぎ,這允許いんきょよう更新こうしんperlてき版本はんぽんただし運行うんこう可能かのうかいけんようてきろう腳本[31]。Perl 5.16也更しんりょう核心かくしん部分ぶぶんらい支持しじUnicode 6.1[31]

名稱めいしょう

[編輯へんしゅう]

Perl原名げんめいさけべ「Pearl」。ひしげさと·沃爾そうきゅう這個げんおこり一個有正面意思的短的名字;考慮こうりょりょうなみ否定ひていりょう字典じてんさとごといち3—4字母じぼてき考慮こうりょようてき妻子さいしGloriaてき名字みょうじ命名めいめい。沃爾ざいPerlかんかた發布はっぷぜん發現はつげんりょう現有げんゆうてきPEARLかたりごとなみ改變かいへんりょう這個名字みょうじ[32]

とうゆびだい這個げんてき時候じこう名字みょうじ通常つうじょうだいうつしてきPerl),就像專有せんゆう名詞めいしいちようとうゆびだい這個直譯ちょくやく本身ほんみてき時候じこう,這個名字みょうじ通常つうじょうしょううつしてきperl),いんため大部たいぶ分類ぶんるいUnixぶんけん系統けいとう區分くぶん大小だいしょううつしてきざいProgramming Perl英語えいごProgramming Perlてきだいいちはん發布はっぷまえようperlゆびだい這個げん也很普遍ふへんRandal L. Schwartz英語えいごRandal L. Schwartzはいばんはた這個げんてき名字みょうじざい書中しょちゅううつしなりだいうつしてき以便理解りかい後來こうらい,這個大小だいしょううつしてき區別くべつ就成ため正規せいきてきりょう[33]

ぜんだいうつしてき「PERL」ゆう爭議そうぎてき,而文檔中說明せつめい「PERL」たいてき[33],一些核心的社區成員將其視為外行的標誌[34]。這個名字みょうじ偶爾かいため「Practical Extraction and Report Language」てき縮寫しゅくしゃ,就像ぶん[32]いただきはし一些紙質書本說的那樣[35]。一些全稱被建議作為正式名稱,包括ほうかつ沃爾自己じこてきかそけだまてき「Pathologically Eclectic Rubbish Lister」[36]的確てきかく,沃爾要求ようきゅう這個名字みょうじ啟示けいじ許多きょた不同ふどうてき擴展[37]

駱駝らくだしるべ

[編輯へんしゅう]
駱駝らくだしるべ

Programming Perl》,ゆかりおく萊利媒體ばいたい發布はっぷ特色とくしょくふうめん有一ゆういちちょう駱駝らくだまとへんいん而被しょうさく駱駝らくだしょ[38]。這張駱駝らくだてきへんやめけいなりためりょうPerlかんかたてきしるべいちくろきゃくてきしるべ這出はいで現在げんざいT恤衫其它衣服いふくじょう

おく萊利ようゆう此圖ぞう商標しょうひょうなみ且宣たたえただゆうざい捍衛「符號ふごうかんせいせいざいかい行使こうし法律ほうりつじょうてき權力けんりょく[39]おく萊利允許いんきょ商標しょうひょうざい商業しょうぎょう目的もくてき前提ぜんてい使用しようなみ同時どうじきょうりょうProgramming Republic of Perlてき圖像ずぞう以及Powered by Perlてき按鈕[40]Perlてきいち識別しきべつ符號ふごうひつじよしためIntermediate Perl》一書的封面是一隻羊駝[41]

よう蔥標

[編輯へんしゅう]
よう蔥標

Perl基金ききんかいようゆう一個可選的標誌,いちよう蔥,允許いんきょ它的站點,Perl MongersPerlMonks,Perl.org其它もう使用しよう[42]

Perlげんてき中心ちゅうしん思想しそう

[編輯へんしゅう]

Perlげんてき中心ちゅうしん思想しそう集成しゅうせいためいちばなしTMTOWTDI」:

There's More Than One Way To Do It.
ただ一種方法來做一件事。)

Perlてき作者さくしゃひしげさと·沃爾建議けんぎ以把這個縮寫しゅくしゃねんなり「Tim Toady」。這句ばなし後來こうらい擴充かくじゅうなり:

There's more than one way to do it, but sometimes consistency is not a bad thing either.
ただ一種方法來做一件事,ただしゆう保持ほじいち致也錯。)

  • TIMTOWTDIBSCINABTE發音はつおんため「Tim Toady Bicarbonate」[43].

いちPerlほどじょいん常常つねづね想起そうきてきPerl俗語ぞくご

Easy things should be easy, and hard things should be possible.
簡單かんたんてき事情じじょうおう該是簡單かんたんてき複雜ふくざつてき事情じじょうおう該儘可能かのう地變ちへんどく簡單かんたん。)

ゆうてん

[編輯へんしゅう]

ためりょう實現じつげん這樣てき目標もくひょうなみ且又いんためLarry Wall本人ほんにん也是いちげんがく設計せっけいPerlげん使用しようりょう很多げん學的がくてきおもえ維。そうCPascal這樣てき高級こうきゅうげん而言,Perlげん直接ちょくせつ提供ていきょう泛型變數へんすう動態どうたいすうくみ、Hashひょうとうさら便びんとしてきへんほど元素げんそ。Perl具有ぐゆう動態どうたいげんてき強大きょうだいれいかつてき特性とくせいなみ且還したがえC/C++、Basic、Pascalとうげんちゅう分別ふんべつかんりょう語法ごほう規則きそくしたがえ提供ていきょうりょう許多きょた冗餘語法ごほう使つかいとくほどじょいん以忽りゃく計算けいさん內部資料しりょうそんもうか類型るいけい處理しょり方法ほうほう運算うんざん規則きそく、甚至內存えつかいとうとうてきほそぶし,而將思考しこう中心ちゅうしん在所ざいしょ需要じゅようてきほどじょ邏輯じょう。就這いちてん而言,很多Perlほどじょいんみとめため目前もくぜんただゆうPerl、Pythonひとし泛型かたりげん才能さいのうしょうため高級こうきゅうげん,而CPascal甚至C++這些ただのうしょうためちゅう高級こうきゅうげん而已。以說,ざいすべ一變數類型和掩蓋運算細節方面,Perl做得Pythonさらため出色しゅっしょく

よし於從其他げん大量たいりょうかんりょう語法ごほう使つかいとくしたがえ其他へんほどげんうたていたPerlげんてきほどじょいん以迅そくじょう手寫しゅしゃほどじょなみ完成かんせい任務にんむ,這使とくPerlげん一門容易用的語言。

缺點けってん

[編輯へんしゅう]

也正いんためPerlてきれい活性かっせい過度かどてき冗餘語法ごほう,也因此獲得かくとくりょう僅寫(write-only)てきよしほまれ」,いんためPerlほどしき以寫とく隨意ずいいれい如,變數へんすうけい宣告せんこく就可以直接ちょくせつ使用しよう),ただし可能かのうしょううつし一些字母就會得到意想不到的結果(而不ほう錯),許多きょたPerlほどしきてきほどしき碼令じんなん以閱讀,實現じつげんしょうどうこうのうてきほどじょだい碼長以相じゅうばいひゃくばい,這就れいほどしきてき維護しゃ(甚至へんうつししゃなん以維まもる

同樣どうようてきいんためPerl這樣隨意ずいいてきとくてん可能かのうかいしるべ致一些Perlほどじょいん遺忘いぼう語法ごほう,以至於不とく經常けいじょう查看Perlしゅさつたい此,《Learning Perl》一書裡建議經常使用Perlへんほど

建議けんぎてき解決かいけつ方法ほうほうざいほどじょうら使用しようuse strict;以及use warnings;なみ統一とういつだい風格ふうかく使用しよう,而不自己じこ使用しようかたへん」。Perl同樣どうよう以將だい書寫しょしゃとくぞうPythonあるRubyとうかたりげんいちよう優雅ゆうが

Perlてき語法ごほう

[編輯へんしゅう]

PerlてきHello Worldほどしき

[編輯へんしゅう]

下面かめん一個在標準輸出設備上輸出Hello Worldてき簡單かんたんほどしき,這種ほどしき通常つうじょう作為さくい開始かいし學習がくしゅうほどしきげんてきだいいちはんれい

#!/usr/bin/env perl
print "Hello, world!\n";

如果ゆうperl 5.10以上いじょうてき版本はんぽん,也可以這さま

#!/usr/bin/env perl
use 5.010;
say "Hello, world!";

這個ほどじょはた輸出ゆしゅついちぎょうくし:「Hello, world!」,以及いちかわくだり

變量へんりょう

[編輯へんしゅう]

Perlいちしゅ類型るいけいげん(untyped),かわはなしせつざいかたりげんそうめんじょう,Perl和大かずひろ多數たすうへんほどげん不同ふどう變量へんりょうぶんなり整數せいすう浮點すうひとしひとし,而只ゆう一種能接受各種類型數據的「類型るいけい變量へんりょう。Perlてき變量へんりょう以$ひらきあたまれい$a=5;$b="Hello";$c=3.2;$d='\n这里并不换行';みやこただし合法ごうほうてきPerl語句ごく

Perlちゅう各種かくしゅ變量へんりょうてき運算うんざん也很自由じゆうすう含有がんゆうすうてきくしとうこうてき以把數字すうじくし參與さんよ數學すうがく計算けいさん,也可以反ゆずる數字すうじ參與さんよくしてき構成こうせい操作そうさ

じょたん變量へんりょう(PerlしょうためしるべりょうScalar」)これがい,Perlかえゆうりょうたね集合しゅうごう類型るいけい分別ふんべつすうくみArrayよう@ひらきあたまかず關聯かんれんすうくみAssociative arrayあるものたたえためHashよう%ひらきあたま類似るいじC++11てきSTL じょひょうunordered_mapPythonてき字典じてんDictionary」)。すうくみ以內含任意にんい可變かへんすう目的もくてき變量へんりょうなみ以其そんもうか順序じゅんじょ作為さくい索引さくいん完成かんせい常數じょうすう時間じかんてき定位ていい;而Hashひょうのり以在變量へんりょうあいだ建立こんりゅういちいちうつ,就像字典じてんいちよう不同ふどうてき變量へんりょう按照們的邏輯關係かんけい組織そしきおこりらいなみ作為さくいかぎてき變量へんりょう進行しんこう索引さくいん完成かんせい常數じょうすう時間じかんてき定位ていい

另外,Perlかえゆう一種いっしゅ特殊とくしゅてき類型るいけい引用いんよう(reference),類似るいじ於指はりとうさくしるべりょう處理しょり指向しこうしるべりょう(含引よう)、すうくみ、Hashとうにんなん類型るいけい。如:

$foo = \$bar; print $$foo;
$foo = \@bar; print @$foo;
$foo = \%bar; print %$foo;
$foo = \&bar; print $foo->(); print &$foo;

引用いんようてきこうしょざい於,はた它傳遞給函數かんすうこれ函數かんすう以修あらため指向しこうてき變量へんりょう。而如はてでん遞普どおり變量へんりょうおさむあらためてき值只ざい函數かんすう有效ゆうこう

sub foo
{
    my $var = shift;
    $$var = '1';
}
my $foo = '2';
my $var = \$foo;
print $$var;
foo ($var);
print $foo;

輸出ゆしゅつ「21」,そくfoo()內改變かいへんりょう$foo。

判斷はんだん語句ごく

[編輯へんしゅう]

いんためPerl大量たいりょうてき創造そうぞう冗餘てき語法ごほうなみ且從其他げんちゅう大量たいりょうてきかん語法ごほう使つかいとくPerlてき語法ごほうごく其豐富和とみわれいかつ。Perl共有きょうゆうれついくしゅ判斷はんだん語句ごく

  • ifかたまり
if ($hour > 22) {
    print "should sleep...\n";
}
  • if語句ごく
print "hello" if $guest >= 1;
  • unlessかたまり
unless ($credit > 100) {
    print "You can not graduate!\n";
}
  • unless語句ごく
print "eat\n" unless $food == 0;
  • given/when(語句ごく及區かたまり)
use 5.010;
given ($foo)
{
    say 'a' when 'a';
    when (/b/) { say 'b'; } #when以写なり语句ある
    default { say 'not match'; } #ただ以写なる块。
}

よし邏輯運算うんざんもとてき作用さようかえ以寫不用ふようせきかぎifあるunlessてき判斷はんだん語句ごく,如常用じょうようてき打開だかいぶんけん語句ごく

open DATA, '<', $filename or die "Can't open $filename: $!\n";

循環じゅんかん語句ごく

[編輯へんしゅう]

Perlちゅうてき循環じゅんかん語句ごく也是非常ひじょうてき豐富ほうふ主要しゅようゆう

Perl自己じこてきforあるものforeach循環じゅんかん(兩個りゃんこ完全かんぜんいちよう):

@group = 1 .. 10;
for (@group) {
    print "$_\n";
}
print "$_\n" for @group;
foreach (@group) {
    print "$_\n";
}

したがえCげんかんらいてきfor循環じゅんかん(またうつしさくforeach,兩個りゃんこ完全かんぜんいちよう):

for ($i = 0; $i < 10; $i++) {
    print "$group[$i]\n";
}

while循環じゅんかん

$i=0;
while ($i < 10) {
    print "$group[$i]\n";
    $i++;
}

do...while循環じゅんかん

$i = 0;
do {
    print "$group[$i]\n";
    $i++;
} while ($i < 10);

until循環じゅんかん

$i = 0;
until ($i == 10) {
    print "$group[$i]\n";
    $i++;
}

したがえPASCALげんかんらいてきdo...until循環じゅんかん

$i = 0;
do {
    print "$group[$i]\n";
    $i++;
} until ($i == 10);

甚至かえゆう利用りよう動態どうたいげん特性とくせいようmap函數かんすう也可以做循環じゅんかん

map { print "$_\n" } @group;

其實かえゆう其他てき循環じゅんかん方式ほうしきそう而言,就是TMTOWTDI

Perlてき應用おうよう

[編輯へんしゅう]

Perl主要しゅよう應用おうようざいUnix平台ひらだいかずもうぺーじちゅうPHPCGI)。Perlよう有海あるみ量的りょうてきかたぎかたまり支持しじざい解決かいけつ問題もんだい非常ひじょう方便ほうべんCPANゆう很多Perlかたまり

以Perlへんうつしてき軟件

[編輯へんしゅう]

Perl Data Language

[編輯へんしゅう]

Perl Data Language(簡稱PDL)Perlてきいち外接がいせつかたぎかたまり,也是たいPerlこうのうてきいち重要じゅうようひらけてん。它使とくPerlげん直接ちょくせつたい2いたり維的のりじん直接ちょくせつ操作そうさ進行しんこう快速かいそくてきのりじん運算うんざん完成かんせい基礎きそてきPerlしょ不能ふのう完成かんせいてき運算うんざんだいだいつぶせてんりょうPerlてき適用てきよう範圍はんい所以ゆえんPDL本身ほんみ也是很多其他かたまりてき基礎きそ

而且PDL提供ていきょうりょうあずか很多其他軟件つつみてきせっこうれいFFTWいち快速かいそくでん立葉たてば變換へんかんてき軟件つつみ),またあるものこれMesaLinuxうえてきOpenGL三維圖形渲染包),這些つつみげん來往らいおう往僅提供ていきょうC/C++かたりげんせっこう。這一こうのう使PDLなりためつぶせてんPerlこうのうてきいちちゅうあいだそう

Perlてきしゃ文化ぶんか

[編輯へんしゅう]

Perl詩經しきょう

[編輯へんしゅう]

CげんいちようざいPerlかいなん以讀懂的ほどしき碼大さい有名ゆうめいてき活動かつどう近似きんじなん以讀懂的ほどしき碼,ただし方向ほうこう不同ふどう,Perl Poetry以被perlへんやくてきしんてき詩經しきょう通常つうじょうかいざい[1]ぺーじめんそん檔備份そんあみぎわもう檔案かんもう發表はっぴょう[44]

Just another Perl hacker(另いちPerlくろきゃくいち國際こくさいCげん混亂こんらんだい碼大さいゆうちゃくしょうどう精神せいしんてきしゃ文化ぶんか。Perlほどじょいん通過つうかうつしJAPHだい碼,ぶんとおる自己じこてきへんほど技術ぎじゅつ[45]

競爭きょうそうたい

[編輯へんしゅう]

いんため許多きょたPerlほどじょてきだい碼難以閱讀,じょう它的めんこう對象たいしょうこうのうため真正しんせいてきめんこう對象たいしょう(ただぐみてき模擬もぎ),於是很多じん拿Perl其他動態どうたいげんらい比較ひかく

さい常見つねみてき比較ひかく對象たいしょうPython有人ゆうじんうつしりょうへん文章ぶんしょうさけべ《What's wrong with Perl》[46]指出さしでPerlてき缺點けってんつづみ勵別じんがくPython。著名ちょめいくろきゃくほこりさとかつ·斯蒂芬·かみなりこうむうつしりょう《Why Python?》[47],該文ちゅう一個重要的比較對象就是Perl。《A Byte Of Python》[48]さとてき《Why Not Perl?》[49]也把PythonPerl比較ひかく

Rubyてき作者さくしゃ松本まつもと行弘ゆきひろ,Matz)甚至ちょくみとめそうRuby作為さくいPerlてき後繼こうけいしゃ[50]

Raku舊名きゅうめいPerl 6)

[編輯へんしゅう]
Camelia,Raku項目こうもくてきしるべ[51]

2000ねん開始かいしひしげさと·沃爾ちょしゅ開發かいはつPerl 6らい作為さくいPerlてき後繼こうけい,2019ねんさらめいためRaku

ざいPerlてきかんもうかい紹中,RakuPerl 5てきいち版本はんぽん,而是あずかPerl 5並行へいこう開發かいはつてきいちしゅへんほどげん[52] Rakuさら好地こうち支持しじめんこう對象たいしょうゆう專用せんよう定義ていぎるいてき語法ごほう

class Foo is Universal { # inherit form Universal
    has $.member_variable

    method member_function {
        print "some string";
    }
}

Raku以明かく定義ていぎ變量へんりょう類型るいけいとう類型るいけいひきはいへんやく時報じほう[53]

另外,Raku提供ていきょうりょう不同ふどうてき正則せいそくひょうたちしき語法ごほうしんてき語法ごほうしょうさく規則きそく」,なみ允許いんきょ使用しようしゃざい正則せいそくひょうたちしきちゅう加入かにゅうそらかくとう以便閱讀,かえ命名めいめい一個正則表達式方便調用[54]

Rakuちゅうてきひかえせいりゅうほど循環じゅんかんてき判斷はんだん條件じょうけんてきくくごうせん:

if $percent > 100  {
    say "weird mathematics";
}
for 1..3 {
    # using $_ as loop variable
    say 2 * $_;
}
for 1..3 -> $x {
    # with explicit loop variable
    say 2 * $x;
}
while $stuff.is_wrong {
    $stuff.try_to_make_right;
}

ただし如果加入かにゅうくくごう不能ふのう緊跟ざいせきかぎめん,而要そらいちかくいんためようfoo()這樣てき形式けいしきへんやく識別しきべつため調ちょうよう函數かんすうfoo,而不かん它是せきかぎ[55]

if ($hour > 22) { #正確せいかく
    say 'should sleep...';
}
if($hour > 22) { #錯誤さくご
    say 'should sleep...';
}

參考さんこう文獻ぶんけん

[編輯へんしゅう]
  1. ^ "perl v5.40.0 is now available"; 作者さくしゃせい名字みょうじくし: Graham Knop; 出版しゅっぱん: 2024ねん6がつ9にち; 檢索けんさく: 2024ねん6がつ10日とおか.
  2. ^ The "Artistic License" - dev.perl.org. dev.perl.org. [2018-12-17]. (原始げんし內容そん檔於2018-07-24). 
  3. ^ Artisticぺーじめんそん檔備份そんあみぎわもう檔案かん) - file on the Perl 5 git repository
  4. ^ Perl Licensing. dev.perl.org. [2011-01-08]. (原始げんし內容そん於2011-01-22). 
  5. ^ perl 5.36.0 is now available. www.nntp.perl.org. [2022-05-28]. (原始げんし內容そん於2022-07-05). 
  6. ^ Perl 5.34.1 is now available!. www.nntp.perl.org. [2022-03-13]. (原始げんし內容そん檔於2022-04-11). 
  7. ^ perl 5.37.0 is now available. www.nntp.perl.org. [2022-05-28]. (原始げんし內容そん於2022-07-05). 
  8. ^ Lapworth, Leo. General Questions About Perl. Perl FAQ. Perl.org. [February 24, 2012]. (原始げんし內容そん於2013-06-22). 
  9. ^ perl(1): Practical Extraction/Report Language - Linux man page. Linux.die.net. [2013-07-23]. (原始げんし內容そん於2013-06-22). 
  10. ^ Perl Core Development - Perl 6. [2006-02-10]. (原始げんし內容そん於2006-02-07). 
  11. ^ Sheppard, Doug. Beginner's Introduction to Perl. O'Reilly Media. 2000-10-16 [2008-07-27]. (原始げんし內容そん於2008-06-04). 
  12. ^ Wall, Larry, Tom Christiansen and Jon Orwant. Programming Perl, Third Edition. O'Reilly Media. July 2000. ISBN 0-596-00027-8. 
  13. ^ comp.sources.unix. Google Groups. Google. 1988-02-01 [2011-01-13]. (原始げんし內容そん於2013-05-10). 
  14. ^ perl.perl5.porters archive. perl.org. [2011-01-13]. (原始げんし內容そん於2011-05-01). 
  15. ^ perlhist - the Perl history records. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (原始げんし內容そん於2011-01-13). 
  16. ^ CPAN. CPAN. [2012-04-14]. (原始げんし內容そん檔於2011-02-26). 
  17. ^ 17.0 17.1 perl5004delta - what's new for perl5.004. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (原始げんし內容そん於2011-02-27). 
  18. ^ Patwardhan, Nathan; Siever, Ellen; Spainhour, Stephen. Perl in a Nutshell, Second Edition. O'Reilly Media. 2002 [2011-01-08]. ISBN 978-0-596-00241-1. 
  19. ^ perl5005delta - what's new for perl5.005. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (原始げんし內容そん於2011-02-03). 
  20. ^ Perl Source. cpan.org. [2023-11-26]. (原始げんし內容そん於2024-05-21). 
  21. ^ perl56delta - what's new for perl v5.6.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (原始げんし內容そん於2011-02-02). 
  22. ^ perl56delta - what's new for perl v5.6.x. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (原始げんし內容そん於2010-11-18). 
  23. ^ Wall, Larry. Apocalypse 1: The Ugly, the Bad, and the Good. [2011-01-08]. (原始げんし內容そん於2010-11-23). 
  24. ^ perl58delta - what is new for perl v5.8.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (原始げんし內容そん於2010-11-21). 
  25. ^ A Plan for Pugs. O'Reilly Media. 2005-03-03 [2011-01-27]. (原始げんし內容そん於2012-09-08). 
  26. ^ Tang, Audrey. Re: How to Implement Perl 6 in Ten Years. PerlMonks. 2010-04-21 [2011-01-03]. (原始げんし內容そん於2011-05-11). 
  27. ^ perl5100delta - what is new for perl 5.10.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (原始げんし內容そん於2010-12-21). 
  28. ^ perlsyn - Perl syntax. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. (原始げんし內容そん於2013-08-26). 
  29. ^ perl5120delta - what is new for perl v5.12.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (原始げんし內容そん於2011-01-04). 
  30. ^ perldelta - what is new for perl v5.12.3. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. (原始げんし內容そん於2011-06-08). 
  31. ^ 31.0 31.1 perldelta - what is new for perl v5.16.0. Perl 5 version 16.0 documentation. search.cpan.org. [2012-05-21]. (原始げんし內容そん於2012-05-24). 
  32. ^ 32.0 32.1 Richardson, Marjorie. Larry Wall, the Guru of Perl. Linux Journal. 1999-05-01 [2011-01-03]. (原始げんし內容そん檔於2011-01-26). 
  33. ^ 33.0 33.1 perlfaq1: What's the difference between "perl" and "Perl"?. perldoc.perl.org - Perl 5 version 12.2 documentation. [2012-07-02]. (原始げんし內容そん於2012-07-12). 
  34. ^ Schwartz, Randal. PERL as shibboleth and the Perl community. PerlMonks. [2007-06-01]. (原始げんし內容そん於2007-09-27). 
  35. ^ Steve McConnell (2004) Code Complete, 2nd ed., Microsoft Press, p. 65.
  36. ^ Wall, Larry. perl - The Perl language interpreter. Perl 5 version 12.2 documentation. [2011-01-26]. (原始げんし內容そん於2011-01-20). 
  37. ^ Wall, Larry. Re^7: PERL as shibboleth and the Perl community. PerlMonks. [2011-01-02]. (原始げんし內容そん於2011-05-11). 
  38. ^ Schwartz, Randal L; Phoenix, Tom; foy, brian. Learning Perl, Third Edition. ISBN 978-0-596-00132-2. 
  39. ^ O'Reilly—The Perl Camel Usage and Trademark Information. [2008-11-12]. (原始げんし內容そん於2005-12-26). 
  40. ^ Index of /images/perl
  41. ^ Intermediate Perl. [2012-07-03]. (原始げんし內容そん於2012-06-26). 
  42. ^ Perl Trademark. The Perl Foundation. [2011-01-09]. (原始げんし內容そん檔於2011-05-03). 
  43. ^ Can EPO (or TPF) tame TIMTOWTDI?. dev411.com. 2009-01-24 [2012-07-03]. (原始げんし內容そん檔於2012-06-25). 
  44. ^ The Lighter Side of Perl Culture (Part V): Poetry. [2015-11-19]. (原始げんし內容そん於2015-11-19). 
  45. ^ The Lighter Side of Perl Culture (Part II): JAPH. [2015-11-19]. (原始げんし內容そん於2015-11-19). 
  46. ^ What's wrong with Perlぺーじめんそん檔備份そんあみぎわもう檔案かん
  47. ^ Why Python?ぺーじめんそん檔備份そんあみぎわもう檔案かん
  48. ^ A Byte Of Pythonぺーじめんそん檔備份そんあみぎわもう檔案かん
  49. ^ Why Not Perl?ぺーじめんそん檔備份そんあみぎわもう檔案かん
  50. ^ わがみとめためRuby這個名字みょうじ作為さくいPerlこれてき一門語言的名字真是再恰當不過了。」--摘錄てきろくO'Reilly訪問ほうもんMatz。ぺーじめんそん檔備份そんあみぎわもう檔案かん
  51. ^ Perl 6. The Perl 6 Project. [2011-02-27]. (原始げんし內容そん檔於2011-02-21). 
  52. ^ About Perl. [2015-11-19]. (原始げんし內容そん於2015-11-06) 英語えいご. "Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language which has its own development team. 
  53. ^ Perl 5 to 6. [2012-07-04]. (原始げんし內容そん於2012-07-03). 
  54. ^ Perl 5 to 6. [2012-07-04]. (原始げんし內容そん於2012-07-03). 
  55. ^ Perl 5 to 6. [2012-07-04]. (原始げんし內容そん於2012-07-03). 

まいり

[編輯へんしゅう]

外部がいぶ連結れんけつ

[編輯へんしゅう]

ちゅうぶん資源しげんしゃぐん

[編輯へんしゅう]

英文えいぶん資源しげんしゃぐん

[編輯へんしゅう]