Nhảy chuyển tới nội dung

Perl

本页使用了标题或全文手工转换
Duy cơ bách khoa, tự do bách khoa toàn thư
Perl
Biên trình phạm hìnhNhiều trọng biên trình phạm thức:Hàm số,Mệnh lệnh thức,Mặt hướng đối tượng(Phân loại làm cơ sở),Phản xạ,Quá trình thức,Sự kiện điều khiển,Phiếm hình
Thiết kế giảKéo · Wall
Thật tác giảKéo · Wall
Phát hành thời gian1987 năm 12 nguyệt 18 ngày,​36 năm trước​ (1987-12-18)
Trước mặt phiên bản
  • 5.40.0(2024 năm 6 nguyệt 9 ngày; ổn định phiên bản )[1]
編輯維基數據鏈接
Hình thái hệ thốngĐộng thái
Thật làm ngôn ngữC ngôn ngữ
Thao tác hệ thốngVượt ngôi cao
Cho phép chứngNghệ thuật cho phép hiệp 1.0[2][3]
GNU thông dụng công cộng cho phép chứng[4]
Văn kiện mở rộng danh.pl,.pm,.t,.pod
Trang webwww.perl.org
Dẫn dắt ngôn ngữ
AWK,C ngôn ngữ,C++,Lisp,Pascal,sed,Smalltalk 80,Unix shell
Ảnh hưởng ngôn ngữ
CoffeeScript,ECMAScript,Groovy,
JavaScript,Julia,LPC,Perl 6,PHP,Python,Ruby,Windows PowerShell

PerlCao giai,Thông dụng,Dịch thẳng thức,Động tháiThể thức ngôn ngữ gia tộc.Lúc ban đầu thiết kế giảKéo · WallVì làm ởUNIXThượng tiến hành báo biểu xử lý công tác trở nên càng phương tiện, quyết định khai phá một cái thông dụngKịch bản gốc ngôn ngữ,Mà ở 1987 năm 12 nguyệt 18 ngày phát biểu. Trước mắt, Perl ngôn ngữ gia tộc bao hàm hai cái chi nhánh Perl 5 cùng vớiPerl 6.Tuy rằng Perl không phải chính thức đầu chữ cái súc lược từ[8],Nhưng vẫn có đủ loạiNghịch hướng đầu chữ cái súc lược từ,Bao gồm “Thực dụng lấy ra cùng báo cáo ngôn ngữ”.[9]

Perl mượnC,sed,awk,shellKịch bản gốc,LispCùng với rất nhiều mặt khác thể thức ngôn ngữ đặc tính. Trong đó quan trọng nhất đặc tính là Perl bên trong tổng thểChính tắc biểu đạt thứcCông năng, cùng với thật lớn kẻ thứ ba số hiệu khoCPAN.

2000 năm bắt đầu,Kéo · WallXuống tay khai pháPerl 6Tới làm Perl nối nghiệp, Perl 6 ngôn ngữ ngữ pháp có rất nhiều chuyển biến, cũng bị coi là Perl trong gia tộc một cái khác ngôn ngữ ( Perl 6 với 2019 năm thay tên vìRaku).[10]

Perl ngôn ngữ ứng dụng rộng khắp, bao dungCGI,Đồ hình biên trình, hệ thống quản lý, internet biên trình, tài chính, sinh vật chờ lĩnh vực. Bởi vì này linh hoạt tính, Perl được xưng làKịch bản gốc ngôn ngữTrungThụy Sĩ quân đao.[11]

Lịch sử

[Biên tập]

Lúc đầu phiên bản

[Biên tập]

Kéo · WallỞ 1987 năm bắt đầu viết làm Perl, khi đó hắn đang ởUnisysĐươngLập trình viên[12],Hơn nữa ở 1987 năm 12 nguyệt 18 ngày đem 1.0 phiên bản tuyên bố tới rồi comp.sources.miscTin tức tổ[13].Cái này ngôn ngữ ở kế tiếp mấy năm nội thực mau mà phát triển lên.

Wall sớm nhất đích xác đem cái này ngôn ngữ xưng là “Pearl” (Trân châu), bởi vì hắn hy vọng chính mình khai phá ngôn ngữ có một cái cát lợi tên hơn nữa muốn tận lực ngắn nhỏ hảo nhớ, hắn thậm chí công bố sớm đã suy xét quá sở hữu ba cái cập bốn chữ mẫu từ ngữ, cùng với chính mình thê tử tên Gloria. Nhưng mà một khác môn ngôn ngữPEARLSớm đã tồn tại, vì phòng ngừa lẫn lộn, Wall mới đem nó sửa tên Perl.

Perl 2, với 1988 năm tuyên bố, đặc sắc là có một cái càng tốtChính tắc biểu đạt thứcĐộng cơ, Perl 3, với 1989 năm tuyên bố, tăng thêm đốiCơ số hai số liệuLưu duy trì.

Từ trước, Perl duy nhất hồ sơ là một cái dần dần biến dàiSổ tay trang.Ở 1991 năm, 《Programming Perl》 ( bị rất nhiều Perl lập trình viên nhân bìa mặt xưng là “Lạc đà thư” ), xuất bản, hơn nữa biến thành một cái chân chính Perl ngôn ngữ tham khảo tư liệu. Đồng thời, Perl phiên bản hào biến thành 4, không phải bởi vì cái này ngôn ngữ trọng đại thay đổi, mà là bởi vì quyển sách này đặc thù ý nghĩa.

Lúc đầu Perl 5

[Biên tập]

Perl 4 một loạt giữ gìn phiên bản, cuối cùng một bản là 1993 năm Perl 4.036. Khi đó, Wall vứt đi Perl 4, bắt đầu khai phá Perl 5. Perl 5 lúc ban đầu thiết kế liên tục tới rồi 1994 năm. 《perl5-portersBưu kiện danh sáchVới 1994 năm 5 nguyệt vì cộng đồng nhổ trồng Perl 5 mà thành lập. Này đem chủ yếu diễn đàn để lại cho Perl 5 khai phá, giữ gìn, cùng nhổ trồng[14].

Perl 5.000 với 1994 năm 10 nguyệt 17 ngày tuyên bố[15].Đây là một cái cơ hồ hoàn toàn trọng viếtGiải thích khí,Hơn nữa nó cấp cái này ngôn ngữ tăng thêm rất nhiều tân đặc tính, bao gồm đối tượng, trích dẫn,Bộ phận lượng biến đổi,CùngMô khối.Rất quan trọng mà, mô khối cung cấp một cái không cần sửa chữa dịch thẳng khí liền có thể mở rộng ngôn ngữ phương pháp. Cảnh này khiến trung tâm dịch thẳng khí phi thường ổn định, cho dù nó cho phép giống nhau Perl lập trình viên tăng thêm tân ngôn ngữ đặc tính. Từ đây, Perl 5 khai phá liền sinh động đi lên.

Perl 5.001 với 1995 năm 3 nguyệt 13 ngày tuyên bố. Perl 5.002 với 1996 năm 2 nguyệt 29 ngày tuyên bố, có chứa tham số loại hình đặc tính. Này cho phép mô khối tác giả viết ra giống Perl bên trong mệnh lệnh như vậy trí năng tử trình tự. Perl 5.003 với 1996 năm 6 nguyệt 25 ngày làm một cái an toàn đổi mới phiên bản tuyên bố.

Perl 5 trong lịch sử quan trọng nhất sự kiện chi nhất là duy trìMô khối.Ở 1995 năm 10 nguyệt 26 ngày,CPAN,Một cái tuyên bố Perl mô khối trang web, thành lập; tính đến 2015 năm 11 nguyệt, nó đã có vượt qua 12457 cái tác giả viết 157794 nhiều mô khối[16].

Perl 5.004 với 1997 năm 5 nguyệt 15 ngày tuyên bố, tăng thêm UNIVERSAL bao, này cho Perl một cái sở hữu loại cơ sở cùng yêu cầu sử dụng mô khối riêng phiên bản năng lực. Một cái khác quan trọng khai phá là bao gồmCGI.pmMô khối[17],Có trợ giúp Perl phát triển vì một cái CGI kịch bản gốc ngôn ngữ[18].

Perl hiện tại cũng duy trì ởMicrosoft WindowsCùng cái khác một ítThao tác hệ thốngHạ vận tác[17].

Perl 5.005 với 1998 năm 7 nguyệt 22 ngày tuyên bố. Cái này phiên bản bao gồm một cái càng tốtChính tắcĐộng cơ, một cái biên dịch hệ thống ( thông quaB::*Mô khối ),qr//Chính tắc trích dẫn thao tác phù, một cái cơ sở mô khối tuyển tập, hơn nữa lại duy trì một ít cái khác thao tác hệ thống, bao gồmBeOS[19].

2000 năm đến nay

[Biên tập]
Chủ yếu phiên bản Cuối cùng đổi mới[20]
Cũ phiên bản, không hề chi viện:5.5 2004 năm 2 nguyệt 23 ngày(2004-02-23)
Cũ phiên bản, không hề chi viện:5.6 2003 năm 11 nguyệt 15 ngày(2003-11-15)
Cũ phiên bản, không hề chi viện:5.8 2008 năm 12 nguyệt 14 ngày(2008-12-14)
Cũ phiên bản, không hề chi viện:5.10 2009 năm 8 nguyệt 23 ngày(2009-08-23)
Cũ phiên bản, không hề chi viện:5.12 2012 năm 11 nguyệt 10 ngày(2012-11-10)
Cũ phiên bản, không hề chi viện:5.14 2013 năm 3 nguyệt 10 ngày(2013-03-10)
Cũ phiên bản, không hề chi viện:5.16 2013 năm 3 nguyệt 11 ngày(2013-03-11)
Cũ phiên bản, không hề chi viện:5.18 2014 năm 10 nguyệt 2 ngày(2014-10-02)
Cũ phiên bản, không hề chi viện:5.20 2015 năm 9 nguyệt 12 ngày(2015-09-12)
Cũ phiên bản, không hề chi viện:5.22 2017 năm 7 nguyệt 15 ngày(2017-07-15)
Cũ phiên bản, không hề chi viện:5.24 2018 năm 4 nguyệt 14 ngày(2018-04-14)
Cũ phiên bản, không hề chi viện:5.26 2018 năm 11 nguyệt 29 ngày(2018-11-29)
Cũ phiên bản, không hề chi viện:5.28 2020 năm 6 nguyệt 1 ngày(2020-06-01)
Cũ phiên bản, không hề chi viện:5.30 2020 năm 6 nguyệt 1 ngày(2020-06-01)
Cũ phiên bản, không hề chi viện:5.32 2021 năm 1 nguyệt 23 ngày(2021-01-23)
Cũ phiên bản, không hề chi viện:5.34 2023 năm 11 nguyệt 29 ngày(2023-11-29)
Cũ phiên bản, vẫn bị chi viện:5.36 2023 năm 11 nguyệt 29 ngày(2023-11-29)
Trước mặt phiên bản:5.38 2023 năm 11 nguyệt 29 ngày(2023-11-29)
Cách thức:
Cũ phiên bản
Cũ phiên bản, vẫn bị chi viện
Trước mặt phiên bản
Mới nhất xem trước phiên bản
Tương lai phiên bản

Perl 5.6 với 2000 năm 3 nguyệt 22 ngày tuyên bố. Đại sửa chữa bao gồm 64 vị duy trì,UnicodeTự xuyến duy trì, đại văn kiện duy trì ( tức: Vượt qua 2GiBVăn kiện ) cùng với “our” mấu chốt tự[21][22].Ở khai phá Perl 5.6 thời điểm, khai phá tổ quyết định đem phiên bản tên tác thành cùng loại cái khác khai nguyên hạng mục; ở 5.005_63 bản lúc sau, tiếp theo cái phiên bản biến thành 5.5.640, kế hoạch là khai phá phiên bản dùng số lẻ, ổn định phiên bản dùng số chẵn.

2000 thâm niên, kéo · Wall dò hỏi xã khu đối Perl tân phiên bản kiến nghị. Cái này tiến trình kết quả ở 361 RFC ( bình luận thỉnh cầu ) văn kiện ( cái này văn kiện có thể chỉ đạo Perl 6 khai phá ). 2001 năm[23],Công tác bắt đầu với thiết kếPerl 6,Một loạt văn kiện tường thuật tóm lược tân một thế hệ Perl thay đổi cùng thiết kế. Chúng nó là làm một kỳ RFC bị triển lãm, mà không phải một cái chính thức hồ sơ. Lúc này, Perl 6 tồn tại còn chỉ là một môn ngôn ngữ tường thuật tóm lược.

Perl 5.8 lúc ban đầu với 2002 năm 7 nguyệt 18 ngày tuyên bố, từ đây, mỗi năm mới có một lần đổi mới. Perl 5.8 cuối cùng một bản là 5.8.9, tuyên bố với 2008 năm 12 nguyệt 14 ngày. Perl 5.8 cải tiến Unicode duy trì, tăng thêm một cái tân IO xử lý cơ chế cùng tân nhiều tuyến trình xử lý, đề cao con số độ chặt chẽ, tăng thêm một ít tân mô khối[24].

2004 năm, công tác bắt đầu với lược thuật trọng điểm —— nguyên lai kiến nghị văn kiện, nhưng sau lại biến thành Perl 6 ngôn ngữ tường thuật.2005 năm 2 nguyệt,Đường phượng,Bắt đầu khai pháPugs,Một cái dùngHaskellViết Perl 6 dịch thẳng khí[25].Đây là lúc ban đầu một cái Perl 6 thực hiện. Cái này nỗ lực đình chỉ với 2006 năm[26].

2007 năm 12 nguyệt 18 ngày, Perl 1.0 20 đầy năm ngày kỷ niệm, Perl 5.10.0 tuyên bố. Perl 5.10.0 bao gồm lộ rõ tân đặc tính, này kéo gần lại Perl 5 cùng6Chi gian khoảng cách. Này đó đặc tính bao gồm một cáiswitch câu nói(Tiếng Anh:switch statement)( gọi là “given/when” ), chính tắc biểu đạt thức đổi mới cùng trí năng xứng đôi thao tác phù “~~”[27][28].Đồng thời, một cái khác Perl 6 thực hiện,Rakudo PerlKhai phá bắt đầu rồi, cùng nhau sử dụngParrot giả thuyết cơKhai phá. Từ2009 năm 11 nguyệtBắt đầu, Rakudo Perl đã là mỗi tháng vừa đổi mới, hiện tại đã là Perl 6 nhất hoàn chỉnh một cái thực hiện.

Perl 5 khai phá trong quá trình một lần đại tu sửa ở Perl 5.11; khai phá xã khu sử dụng mỗi tháng đổi mới hình thức, như vậy liền có thể trước tiên biết trước 3 tháng trong vòng tuyên bố ngày.

2010 năm 4 nguyệt 12 ngày, Perl 5.12.0 tuyên bố. Lộ rõ tăng lên bao gồm tânpackage NAME VERSIONNgữ pháp, Yada Yada thao tác phù ( cố ý mà dùng chiếm vị phù đánh dấu không có thực hiện số hiệu ), cam chịuuse strict;( ởuse 5.012;Khi ) hoàn chỉnhY2038Biên dịch, chính tắc chuyển hóa trọng tái,DTraceDuy trì, cùngUnicode5.2[29].Perl 5.12.3 với 2011 năm 1 nguyệt 21 ngày tuyên bố; nó bao gồm tân bản mô khối cùng một ít hồ sơ thay đổi[30].Phiên bản 5.12.4 với 2011 năm 6 nguyệt 20 ngày tuyên bố.

Perl 5.14 tuyên bố với 2011 năm 5 nguyệt 14 ngày. Cái này chi nhánh cuối cùng một bản, 5.14.2, tuyên bố với 2011 năm 9 nguyệt 26 ngày.

Perl 5.16 tuyên bố với 2012 năm 5 nguyệt 20 ngày. Lộ rõ tân đặc tính bao gồm có thể chỉ định một cái perl phiên bản tới bắt chước, này cho phép người dùng đổi mới perl phiên bản, nhưng có thể vận hành khả năng sẽ không kiêm dung lão kịch bản gốc[31].Perl 5.16 cũng đổi mới trung tâm bộ phận tới duy trìUnicode6.1[31].

Perl nguyên danh kêu “Pearl”. Kéo · Wall tưởng cấp cái này ngôn ngữ khởi một cái có chính diện ý tứ đoản tên; hắn suy xét ( hơn nữa phủ định ) từ điển mỗi một cái 3—4 cái chữ cái từ. Hắn cũng suy xét dùng hắn thê tử Gloria tên mệnh danh. Wall ở Perl phía chính phủ tuyên bố phía trước phát hiện hiện cóPEARLNgôn ngữ, hơn nữa thay đổi tên này[32].

Đương chỉ đại cái này ngôn ngữ thời điểm, tên thông thường là viết hoa (Perl), tựa như danh từ riêng giống nhau. Đương chỉ đại cái này dịch thẳng khí bản thân thời điểm, tên này thông thường là viết thường (perl), bởi vì đại bộ phận loại Unix văn kiện hệ thống đều là phân chia lớn nhỏ viết. Ở 《Programming Perl(Tiếng Anh:Programming Perl)》 đệ nhất bản tuyên bố phía trước, dùngperlChỉ đại cái này ngôn ngữ cũng thực phổ biến;Randal L. Schwartz(Tiếng Anh:Randal L. Schwartz)Sắp chữ khi đem cái này ngôn ngữ tên ở trong sách viết thành viết hoa để lý giải. Sau lại, cái này lớn nhỏ viết khác nhau liền trở thành chính quy[33].

Toàn viết hoa “PERL” là có tranh luận, mà hồ sơ trung thuyết minh “PERL” là không đúng[33],Một ít trung tâm xã khu thành viên đem này coi là người ngoài nghề tiêu chí[34].Tên này ngẫu nhiên sẽ bị coi là “Practical Extraction and Report Language” viết tắt, tựa như hồ sơ[32]Đỉnh cùng một ít giấy chất sách vở nói như vậy[35].Một ít toàn xưng bị kiến nghị làm chính thức tên, bao gồm Wall chính mình hài hước “Pathologically Eclectic Rubbish Lister”[36].Đích xác, Wall yêu cầu tên này gợi ý rất nhiều bất đồng mở rộng[37].

Lạc đà tiêu chí

[Biên tập]
Lạc đà tiêu chí

Programming Perl》, từÁo lai lợiTruyền thông tuyên bố, đặc sắc là bìa mặt có một trươngLạc đàHình ảnh, cho nên bị gọi “Lạc đà thư”[38].Này trương lạc đà hình ảnh đã trở thành Perl không chính thức tiêu chí cùng một cáiHackerTiêu chí, này xuất hiện ở áo thun sam cùng cái khác trên quần áo.

Áo lai lợi có được này hình ảnh chi nhãn hiệu, hơn nữa tuyên bố, chỉ có ở bảo vệ “Ký hiệu chi hoàn chỉnh tính” khi, mới có thể hành sử này trên pháp luật quyền lực[39].Áo lai lợi cho phép này nhãn hiệu ở phi thương nghiệp mục đích phía trước đề hạ bị sử dụng, cũng đồng thời cung Programming Republic of Perl hình ảnh cùng với Powered by Perl cái nút đồ.[40]Perl một cái khác phân biệt ký hiệu làDương đà.Bởi vì 《Intermediate Perl》 một cuốn sách bìa mặt là một con dê đà[41].

Hành tây tiêu chí

[Biên tập]
Hành tây tiêu chí

Perl quỹ hội có được một cái nhưng tuyển tiêu chí, một cái hành tây, cho phép nó tử trạm điểm,Perl Mongers,PerlMonks,Perl.org cùng cái khác trang web sử dụng[42].

Perl tóm tắt

[Biên tập]

Perl ngôn ngữ trung tâm tư tưởng

[Biên tập]

Perl ngôn ngữ trung tâm tư tưởng có thể tổng thể vì một câu “TMTOWTDI”:

There's More Than One Way To Do It.
( không chỉ một loại phương pháp tới làm một chuyện. )

Perl tác giả kéo · Wall kiến nghị có thể đem cái này viết tắt từ niệm thành “Tim Toady”. Những lời này sau lại bị mở rộng thành:

There's more than one way to do it, but sometimes consistency is not a bad thing either.
( không chỉ một loại phương pháp tới làm một chuyện, nhưng có khi bảo trì nhất trí cũng không tồi. )

  • TIMTOWTDIBSCINABTE,Phát âm vì “Tim Toady Bicarbonate”[43].

Một cái khác Perl lập trình viên thường thường nhớ tới Perl tục ngữ là:

Easy things should be easy, and hard things should be possible.
( sự tình đơn giản hẳn là đơn giản, chuyện phức tạp hẳn là tận khả năng mà trở nên đơn giản. )

Ưu điểm

[Biên tập]

Vì thực hiện như vậy mục tiêu, hơn nữa lại bởi vì Larry Wall bản nhân cũng là một cái ngôn ngữ học gia, hắn thiết kế Perl ngôn ngữ khi sử dụng rất nhiều ngôn ngữ học tư duy. So sánh vớiC,PascalNhư vậy “Cao cấp” ngôn ngữ mà nói, Perl ngôn ngữ trực tiếp cung cấp phiếm hình biến số, động thái số tổ, Hash biểu chờ càng thêm nhanh và tiện biên trình nguyên tố. Perl cóĐộng thái ngôn ngữCường đại linh hoạt đặc tính, hơn nữa còn từ C/C++, Basic, Pascal chờ ngôn ngữ trung phân biệt tham khảo ngữ pháp quy tắc, do đó cung cấp rất nhiều nhũng dư ngữ pháp. Khiến cho lập trình viên có thể xem nhẹ máy tính bên trong tư liệu tồn trữ, loại hình, xử lý phương pháp, giải toán quy tắc, thậm chí nội tồn vượt rào từ từ chi tiết, mà đem tự hỏi trung tâm đặt ở sở yêu cầu trình tự logic thượng. Liền điểm này mà nói, rất nhiều Perl lập trình viên cho rằng trước mắt chỉ có Perl,PythonChờPhiếm hìnhNgôn ngữ mới có thể xưng là “Cao cấp” ngôn ngữ, màC,PascalThậm chíC++Này đó chỉ có thể xưng là “Trung cao cấp” ngôn ngữ mà thôi. Có thể nói, ở thống nhất biến số loại hình cùng che giấu giải toán chi tiết phương diện, Perl làm được soPythonCàng vì xuất sắc.

Bởi vì từ mặt khác ngôn ngữ đại lượng tham khảo ngữ pháp, khiến cho từ mặt khácBiên trình ngôn ngữChuyển tới Perl ngôn ngữ lập trình viên có thể nhanh chóng thượng thủ viết trình tự cũng hoàn thành nhiệm vụ, cảnh này khiến Perl ngôn ngữ là một môn dễ dàng dùng ngôn ngữ.

Khuyết điểm

[Biên tập]

Cũng đúng là bởi vì Perl linh hoạt tính cùng “Quá độ” nhũng dư ngữ pháp, cũng bởi vậy đạt được chỉ viết ( write-only ) “Mỹ dự”, bởi vì Perl trình tự có thể viết thật sự tùy ý ( tỷ như, lượng biến đổi không trải qua thanh minh liền có thể trực tiếp sử dụng ), nhưng là khả năng thiếu viết một ít chữ cái liền sẽ được đến không tưởng được kết quả ( mà không báo sai ), rất nhiều Perl trình tự số hiệu lệnh người khó có thể đọc, thực hiện tương đồng công năng trình tự số hiệu chiều dài có thể kém gấp mười lần gấp trăm lần, này liền lệnh trình tự giữ gìn giả ( thậm chí là biên soạn giả ) khó có thể giữ gìn.

Đồng dạng, bởi vì Perl như vậy tùy ý đặc điểm, khả năng sẽ dẫn tới một ít Perl lập trình viên quên đi ngữ pháp, thế cho nên không thể không thường xuyên xem xét Perl sổ tay. Đối này, 《Learning Perl》 một cuốn sách kiến nghị thường xuyên sử dụng Perl biên trình.

Kiến nghị phương pháp giải quyết là ở trình tự sử dụnguse strict;Cùng vớiuse warnings;,Cũng thống nhất số hiệu phong cách, sử dụng kho, mà không phải chính mình sử dụng “Ngạnh mã hóa”.Perl đồng dạng có thể đem số hiệu viết đến giốngPythonHoặcRubyChờ ngôn ngữ giống nhau ưu nhã.

Perl ngữ pháp

[Biên tập]

Perl Hello World thể thức

[Biên tập]

Phía dưới là một cái ở tiêu chuẩn phát ra thiết bị thượng phát raHello WorldĐơn giản thể thức, loại này thể thức thông thường làm bắt đầu học tập thể thức ngôn ngữ cái thứ nhất kiểu mẫu:

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

Nếu có perl 5.10 trở lên phiên bản, cũng có thể như vậy:

#!/usr/bin/env perl
use5.010;
say"Hello, world!";

Cái này trình tự đem phát ra một hàng tự phù xuyến: “Hello, world!”, Cùng với một cái đổi hành.

Lượng biến đổi

[Biên tập]

Perl là một loạiVô loại hình ngôn ngữ( untyped ), nói cách khác, ở ngôn ngữ mặt thượng, Perl cùng đại đa số biên trình ngôn ngữ bất đồng, không đemLượng biến đổiPhân thànhSố nguyên,Tự phù,Phù điểm sốTừ từ, mà chỉ có một loại có thể tiếp thu các loại loại hình số liệu “Vô loại hình” lượng biến đổi. Perl lượng biến đổi lấy $ tự phù mở đầu. Tỷ như$a=5;$b= "Hello";$c=3.2;$d='\n nơi này cũng không đổi hành ';Đều là hợp pháp Perl câu nói.

Perl trung các loại lượng biến đổi giải toán cũng thực tự do, số cùng đựng số tự phù xuyến là chờ hiệu, có thể đem con số tự phù xuyến tham dự toán học tính toán, cũng có thể ngược lại, làm con số tham dự tự phù xuyến cấu thành cùng thao tác.

Trừ đơn cái lượng biến đổi ( Perl xưng là đại lượng vô hướng “Scalar”) ở ngoài, Perl còn có hai loại tập hợp loại hình, phân biệt là số tổ (Array,Dùng @ tự phù mở đầu ) cùng liên hệ số tổ (Associative array,Hoặc là xưng làHash,Dùng % mở đầu. Cùng loạiC++11STLVô tự biểu “unordered_map”CùngPythonTừ điển “Dictionary”). Số tổ có thể ở trong chứa tùy ý có thể biến đổi số lượng lượng biến đổi, cũng lấy này tồn trữ trình tự làm hướng dẫn tra cứu lấy hoàn thành hằng số thời gian định vị; mà Hash biểu, tắc có thể ở lượng biến đổi chi gian thành lập nhất nhất chiếu rọi, tựa như từ điển giống nhau, đem bất đồng lượng biến đổi dựa theo bọn họ logic quan hệ tổ chức lên, cũng lấy làm “Kiện” lượng biến đổi tiến hành hướng dẫn tra cứu, hoàn thành hằng số thời gian định vị.

Mặt khác, Perl còn có một loại đặc thù loại hình, trích dẫn ( reference ), cùng loại với kim đồng hồ, làm như đại lượng vô hướng xử lý, có thể chỉ hướng đại lượng vô hướng ( hàm trích dẫn ), số tổ, Hash chờ bất luận cái gì loại hình. Như:

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

Trích dẫn chỗ tốt ở chỗ, đem nó truyền lại cấp hàm số lúc sau, hàm số có thể sửa chữa nó chỉ hướng lượng biến đổi. Mà nếu truyền lại bình thường lượng biến đổi, sửa chữa giá trị chỉ ở hàm số nội hữu hiệu.

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

Phát ra “21”, tức foo() nội thay đổi $foo.

Phán đoán câu nói

[Biên tập]

Bởi vì Perl đại lượng sáng tạo nhũng dư ngữ pháp, hơn nữa từ mặt khác ngôn ngữ trung đại lượng tham khảo ngữ pháp, khiến cho Perl ngữ pháp cực kỳ phong phú cùng linh hoạt. Perl cùng sở hữu dưới đây vài loại phán đoán câu nói:

  • ifKhu khối
if($hour>22){
print"should sleep...\n";
}
  • ifCâu nói
print"hello"if$guest>=1;
  • unlessKhu khối
unless($credit>100){
print"You can not graduate!\n";
}
  • unlessCâu nói
print"eat\n"unless$food==0;
  • given/when( câu nói cập khu khối )
use5.010;
given($foo)
{
say'a'when'a';
when(/b/){say'b';}#when có thể viết thành ngữ câu hoặc khu khối
default{say'not match';}# chỉ có thể viết thành khu khối.
}

Bởi vìLogicGiải toán nguyên tác dụng, còn có thể viết ra không cầnMấu chốt tựifHoặcunlessPhán đoán câu nói, như thường dùng mở ra văn kiện câu nói:

openDATA,'<',$filenameordie"Can't open $filename: $!\n";

Tuần hoàn câu nói

[Biên tập]

Perl trung tuần hoàn câu nói cũng là phi thường phong phú. Chủ yếu có:

Perl chính mình for hoặc là foreach tuần hoàn ( hai cái hoàn toàn giống nhau ):

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

Từ C ngôn ngữ tham khảo tới for tuần hoàn ( lại có thể viết làm foreach, hai cái hoàn toàn giống nhau ):

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

while tuần hoàn:

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

do...while tuần hoàn:

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

until tuần hoàn:

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

Từ PASCAL ngôn ngữ tham khảo tới do...until tuần hoàn:

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

Thậm chí còn có lợi dụng động thái ngôn ngữ đặc tính, dùng map hàm số cũng có thể làm tuần hoàn:

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

Kỳ thật còn có mặt khác tuần hoàn phương thức. Nói ngắn lại, chính làTMTOWTDI.

Perl ứng dụng

[Biên tập]

Perl chủ yếu ứng dụng ởUnixNgôi cao cùng trang web trung (PHP,CGI). Perl có được rộng lượngMô khốiDuy trì, ở giải quyết vấn đề khi phi thường phương tiện.CPANCó rất nhiều Perl mô khối.

Lấy Perl biên soạn phần mềm

[Biên tập]

Perl Data Language

[Biên tập]

Perl Data Language ( tên gọi tắt PDL ) là Perl một cái ngoại tiếpMô khối,Cũng là đối Perl công năng một cái quan trọng mở rộng. Nó khiến cho Perl ngôn ngữ có thể trực tiếp đối 2 nhiều nhất duyMa trậnTrực tiếp thao tác, tiến hành nhanh chóng Ma trận giải toán, hoàn thành cơ sở Perl sở không thể hoàn thành giải toán, đại đại mở rộng Perl áp dụng phạm vi. Cho nên PDL bản thân cũng là rất nhiều mặt khác mô khối cơ sở.

Hơn nữa PDL cung cấp cùng rất nhiều mặt khác phần mềm bao tiếp lời, tỷ nhưFFTW( một cáiNhanh chóng phó lập diệp biến hóaPhần mềm bao ), lại hoặc làMesa(LinuxThượngOpenGL3d đồ hình nhuộm đẫm bao ), này đó bao nguyên lai thường thường chỉ cung cấp C/C++ ngôn ngữ tiếp lời. Này một công năng sử PDL trở thành mở rộng Perl công năng một cái trung gian tầng.

Perl xã khu văn hóa

[Biên tập]

Perl Kinh Thi

[Biên tập]

Cùng C ngôn ngữ giống nhau, ở Perl giới, khó có thể đọc hiểu thể thức mã đại tái là cái nổi danh hoạt động. Xấp xỉ khó có thể đọc hiểu thể thức mã, nhưng phương hướng bất đồng, Perl Poetry là có thể bị perl biên dịch thơ. Tân Kinh Thi thông thường sẽ ở[1](Giao diện lưu trữ sao lưu,Tồn vớiInternet hồ sơ quán) trang web phát biểu.[44]

Just another Perl hacker( một cái khác Perl hacker ) là một cái cùngQuốc tế C ngôn ngữ hỗn loạn số hiệu đại táiCó tương đồng tinh thần xã khu văn hóa. PerlLập trình viênThông qua viếtJAPHSố hiệu, tới chia sẻ chính mình biên trình kỹ thuật.[45]

Đối thủ cạnh tranh

[Biên tập]

Bởi vì rất nhiều Perl trình tự số hiệu khó có thể đọc, hơn nữa nóMặt hướng đối tượngCông năng bị coi là không phải chân chính mặt hướng đối tượng ( chỉ là mô tổ bắt chước ), thế là rất nhiều người lấy Perl cùng mặt khác động thái ngôn ngữ tới tương đối.

Nhất thường thấy tương đối đối tượng làPython,Có người viết thiên văn chương kêu 《What's wrong with Perl》[46],Chỉ ra Perl khuyết điểm, cổ vũ người khác học Python. Trứ danhHackerEric · Steven · lôi môngViết 《Why Python?》[47],Nên văn trung một cái quan trọng tương đối đối tượng chính là Perl. 《A Byte Of Python》[48]《Why Not Perl?》[49]Cũng đem Python cùng Perl tương đối.

RubyTác giả (Tùng nghề chính hoằng,Matz ) thậm chí thẳng nhận hắn tưởng Ruby làm Perl người nối nghiệp.[50]

Raku( cũ danh Perl 6 )

[Biên tập]
Camelia,Raku hạng mục tiêu chí[51].

2000 năm bắt đầu,Kéo · WallXuống tay khai pháPerl 6Tới làm Perl nối nghiệp, 2019 năm thay tên vìRaku.

Ở Perl official website giới thiệu trung,RakuKhông phải Perl 5 tiếp theo cái phiên bản, mà là cùng Perl 5 song hành khai phá một loại khácBiên trình ngôn ngữ.[52] Raku càng tốt mà duy trì mặt hướng đối tượng, có chuyên dụng với định nghĩa loại ngữ pháp:

classFooisUniversal{# inherit form Universal
has$.member_variable

methodmember_function{
print"some string";
}
}

Raku có thể minh xác định nghĩa lượng biến đổi loại hình, đương loại hình không xứng đôi, biên dịch thời báo sai[53].

Mặt khác, Raku cung cấp bất đồngChính tắc biểu đạt thứcNgữ pháp, tân ngữ pháp gọi “Quy tắc”, hơn nữa cho phép người sử dụng ở chính tắc biểu đạt thức trung gia nhập không cách chờ để đọc, còn có thể mệnh danh một cái chính tắc biểu đạt thức phương tiện thuyên chuyển[54].

Raku trung khống chế lưu trình cùng tuần hoàn phán đoán điều kiện dấu móc nhưng tuyển:

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

Nhưng là nếu gia nhập dấu móc, không thể theo sát ở mấu chốt tự mặt sau, mà muốn không một cách, bởi vì dùng foo() như vậy hình thức, biên dịch khí phân biệt vì thuyên chuyển hàm số foo, mà mặc kệ nó có phải hay không mấu chốt tự[55]:

if($hour>22){# chính xác
say'should sleep...';
}
if($hour>22){# sai lầm
say'should sleep...';
}

Tham khảo văn hiến

[Biên tập]
  1. ^"perl v5.40.0 is now available";Tác giả tên họ tự phù xuyến: Graham Knop; xuất bản ngày: 2024 năm 6 nguyệt 9 ngày; kiểm tra ngày: 2024 năm 6 nguyệt 10 ngày.
  2. ^The "Artistic License" - dev.perl.org.dev.perl.org.[2018-12-17].(Nguyên thủy nội dungLưu trữ với 2018-07-24 ).
  3. ^Artistic(Giao diện lưu trữ sao lưu,Tồn vớiInternet hồ sơ quán) - file on the Perl 5 git repository
  4. ^Perl Licensing.dev.perl.org.[2011-01-08].( nguyên thủy nội dungLưu trữVới 2011-01-22 ).
  5. ^perl 5.36.0 is now available.nntp.perl.org.[2022-05-28].( nguyên thủy nội dungLưu trữVới 2022-07-05 ).
  6. ^Perl 5.34.1 is now available!.nntp.perl.org.[2022-03-13].(Nguyên thủy nội dungLưu trữ với 2022-04-11 ).
  7. ^perl 5.37.0 is now available.nntp.perl.org.[2022-05-28].( nguyên thủy nội dungLưu trữVới 2022-07-05 ).
  8. ^Lapworth, Leo.General Questions About Perl.Perl FAQ. Perl.org.[February 24,2012].( nguyên thủy nội dungLưu trữVới 2013-06-22 ).
  9. ^perl(1): Practical Extraction/Report Language - Linux man page.Linux.die.net.[2013-07-23].( nguyên thủy nội dungLưu trữVới 2013-06-22 ).
  10. ^Perl Core Development - Perl 6.[2006-02-10].( nguyên thủy nội dungLưu trữVới 2006-02-07 ).
  11. ^Sheppard, Doug.Beginner's Introduction to Perl.O'Reilly Media.2000-10-16[2008-07-27].( nguyên thủy nội dungLưu trữVới 2008-06-04 ).
  12. ^Wall, Larry,Tom Christiansen andJon Orwant.Programming Perl, Third Edition.O'Reilly Media.July 2000.ISBN0-596-00027-8.
  13. ^comp.sources.unix.Google Groups.Google.1988-02-01[2011-01-13].( nguyên thủy nội dungLưu trữVới 2013-05-10 ).
  14. ^perl.perl5.porters archive.perl.org.[2011-01-13].( nguyên thủy nội dungLưu trữVới 2011-05-01 ).
  15. ^perlhist - the Perl history records.Perl 5 version 12.2 documentation. perldoc.perl.org.[2011-01-21].( nguyên thủy nội dungLưu trữVới 2011-01-13 ).
  16. ^CPAN.CPAN.[2012-04-14].(Nguyên thủy nội dungLưu trữ với 2011-02-26 ).
  17. ^17.017.1perl5004delta - what's new for perl5.004.Perl 5 version 12.2 documentation. perldoc.perl.org.[2011-01-08].( nguyên thủy nội dungLưu trữVới 2011-02-27 ).
  18. ^Patwardhan, Nathan; Siever, Ellen; Spainhour, Stephen.Perl in a Nutshell, Second Edition.O'Reilly Media. 2002[2011-01-08].ISBN978-0-596-00241-1.
  19. ^perl5005delta - what's new for perl5.005.Perl 5 version 12.2 documentation. perldoc.perl.org.[2011-01-21].( nguyên thủy nội dungLưu trữVới 2011-02-03 ).
  20. ^Perl Source.cpan.org.[2023-11-26].( nguyên thủy nội dungLưu trữVới 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].( nguyên thủy nội dungLưu trữVới 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].( nguyên thủy nội dungLưu trữVới 2010-11-18 ).
  23. ^Wall, Larry.Apocalypse 1: The Ugly, the Bad, and the Good.[2011-01-08].( nguyên thủy nội dungLưu trữVới 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].( nguyên thủy nội dungLưu trữVới 2010-11-21 ).
  25. ^A Plan for Pugs.O'Reilly Media.2005-03-03[2011-01-27].( nguyên thủy nội dungLưu trữVới 2012-09-08 ).
  26. ^Tang, Audrey.Re: How to Implement Perl 6 in Ten Years.PerlMonks.2010-04-21[2011-01-03].( nguyên thủy nội dungLưu trữVới 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].( nguyên thủy nội dungLưu trữVới 2010-12-21 ).
  28. ^perlsyn - Perl syntax.Perl 5 version 12.2 documentation. perldoc.perl.org.[2011-01-21].( nguyên thủy nội dungLưu trữVới 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].( nguyên thủy nội dungLưu trữVới 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].( nguyên thủy nội dungLưu trữVới 2011-06-08 ).
  31. ^31.031.1perldelta - what is new for perl v5.16.0.Perl 5 version 16.0 documentation. search.cpan.org.[2012-05-21].( nguyên thủy nội dungLưu trữVới 2012-05-24 ).
  32. ^32.032.1Richardson, Marjorie.Larry Wall, the Guru of Perl.Linux Journal.1999-05-01[2011-01-03].(Nguyên thủy nội dungLưu trữ với 2011-01-26 ).
  33. ^33.033.1perlfaq1: What's the difference between "perl" and "Perl"?.perldoc.perl.org - Perl 5 version 12.2 documentation.[2012-07-02].( nguyên thủy nội dungLưu trữVới 2012-07-12 ).
  34. ^Schwartz, Randal.PERL as shibboleth and the Perl community.PerlMonks.[2007-06-01].( nguyên thủy nội dungLưu trữVới 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].( nguyên thủy nội dungLưu trữVới 2011-01-20 ).
  37. ^Wall, Larry.Re^7: PERL as shibboleth and the Perl community.PerlMonks.[2011-01-02].( nguyên thủy nội dungLưu trữVới 2011-05-11 ).
  38. ^Schwartz, Randal L;Phoenix, Tom;foy, brian.Learning Perl, Third Edition.ISBN978-0-596-00132-2.
  39. ^O'Reilly—The Perl Camel Usage and Trademark Information.[2008-11-12].( nguyên thủy nội dungLưu trữVới 2005-12-26 ).
  40. ^Index of /images/perl
  41. ^Intermediate Perl.[2012-07-03].( nguyên thủy nội dungLưu trữVới 2012-06-26 ).
  42. ^Perl Trademark.The Perl Foundation.[2011-01-09].(Nguyên thủy nội dungLưu trữ với 2011-05-03 ).
  43. ^Can EPO (or TPF) tame TIMTOWTDI?.dev411. 2009-01-24[2012-07-03].(Nguyên thủy nội dungLưu trữ với 2012-06-25 ).
  44. ^The Lighter Side of Perl Culture (Part V): Poetry.[2015-11-19].( nguyên thủy nội dungLưu trữVới 2015-11-19 ).
  45. ^The Lighter Side of Perl Culture (Part II): JAPH.[2015-11-19].( nguyên thủy nội dungLưu trữVới 2015-11-19 ).
  46. ^What's wrong with Perl(Giao diện lưu trữ sao lưu,Tồn vớiInternet hồ sơ quán)
  47. ^Why Python?(Giao diện lưu trữ sao lưu,Tồn vớiInternet hồ sơ quán)
  48. ^A Byte Of Python(Giao diện lưu trữ sao lưu,Tồn vớiInternet hồ sơ quán)
  49. ^Why Not Perl?(Giao diện lưu trữ sao lưu,Tồn vớiInternet hồ sơ quán)
  50. ^“Ta cho rằng Ruby tên này làm Perl lúc sau một môn ngôn ngữ tên thật là không thể càng thỏa đáng hơn.” -- trích lục tựO'Reilly phỏng vấn Matz.(Giao diện lưu trữ sao lưu,Tồn vớiInternet hồ sơ quán)
  51. ^Perl 6.The Perl 6 Project.[2011-02-27].(Nguyên thủy nội dungLưu trữ với 2011-02-21 ).
  52. ^About Perl.[2015-11-19].( nguyên thủy nội dungLưu trữVới 2015-11-06 )( tiếng Anh )."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].( nguyên thủy nội dungLưu trữVới 2012-07-03 ).
  54. ^Perl 5 to 6.[2012-07-04].( nguyên thủy nội dungLưu trữVới 2012-07-03 ).
  55. ^Perl 5 to 6.[2012-07-04].( nguyên thủy nội dungLưu trữVới 2012-07-03 ).

Tham kiến

[Biên tập]

Phần ngoài liên tiếp

[Biên tập]

Tiếng Trung tài nguyên, xã đàn

[Biên tập]

Tiếng Anh tài nguyên, xã đàn

[Biên tập]