Perl
패러다임다중패러다임
설계자 :래리 월
디벨로퍼래리 월
첫 등장1987년 12월 18일; 35년 전 (1987-12-18)[1]
안정적 해제
  • 5.38.0[2] / 2023년 7월 2일; 2개월(2023-07-02)
  • 5.36.1[3] / 2023년 4월 23일; 4개월 전 (2023-04-23)
프리뷰 릴리즈
5.39.1[4] / 2023년 7월 20일; 44일 전 (2023-07-20)
타이핑규율역학
구현언어C
OS크로스 플랫폼
면허증.Artistic License 1.0[5][6] 또는 GNU General Public License 버전 1 또는 이후 버전[7]
파일 확장명.plx, .pl, .pm, .t, .pod, .cgi
웹사이트perl.org
영향을 받음
AWK, BASIC, C, C++, 리스프, sed, 유닉스[8]
영향받은
CoffeeScript,[citation needed] Groovy,[citation needed] JavaScript, Julia, LPC, PHP, Python, Raku, Ruby, PowerShell

(Perl)은 높은 수준의 범용, 해석, 동적 프로그래밍 언어입니다.Perl은 공식적으로 [9]두문자어는 아니지만, Practical Extraction and Reporting [10]Language를 포함하여 다양한 백로닉이 사용되고 있습니다.

펄은 보고서 처리를 더 [12][11][13]쉽게 하기 위해 범용 유닉스 스크립트 언어로 1987년 래리[11] 월에 의해 개발되었습니다.이후 많은 변화와 수정을 거쳤습니다.펄은 원래 대문자가 아니었고 이름은 펄 4가 [13]출시될 때까지 대문자로 변경되었습니다.가장 최근 출시된 것은 1994년에 처음 출시된 펄 5입니다.2000년부터 2019년 10월까지 펄의 6번째 버전이 개발 중이었으며, 이후 이름이 라쿠로 [14][15]공식적으로 변경되었습니다.두 언어는 서로 다른 개발팀에 의해 독립적으로 계속 개발되고 서로의 아이디어를 자유롭게 차용하고 있습니다.

펄은 C, sh, AWK, [1]sed포함한 다른 프로그래밍 언어에서 기능을 차용합니다.이들은 많은 현대 유닉스 명령줄 [16]도구의 임의의 데이터 길이 제한 없이 텍스트 처리 기능을 제공합니다.펄은 매우 표현력이 뛰어난 프로그래밍 언어입니다. 주어진 알고리즘의 소스 코드는 짧고 압축성이 [17][18]높을 수 있습니다.

펄은 1990년대 중반에 CGI 스크립트 언어로 널리 인기를 얻었는데, 이는 부분적으로 강력한 정규 표현식과 문자열 구문 분석 [19][20][21][22]기능 덕분이었습니다.CGI 외에도 Perl 5는 시스템 관리, 네트워크 프로그래밍, 금융, 생물정보학, 그리고 GUI와 같은 기타 응용 프로그램에 사용됩니다.그것은 유연성과 [23]힘 때문에 "스크립트 언어의 스위스 육군 전기톱"이라는 별명을 얻었습니다.1998년에, 그것은 접착제 언어로서의 유비쿼터스 사용과 인식된 [24]우아함 둘 다를 지칭하여 "인터넷을 하나로 묶는 덕트 테이프"라고도 불렸습니다.

이름 및 로고

오라일리 미디어가 사용하는 낙타 기호
펄 재단에서 사용하는 양파 로고
얼터너티브 펄 5 로고

펄의 이름은 원래 펄(Pearl)이었습니다.월은 그 언어에 긍정적인 의미를 가진 짧은 이름을 지어주고 싶었습니다.마태오 [11][25]복음서에 나오는 진주의 비유에 대한 기독교적 언급이기도 합니다.그러나 월은 펄의 정식 출시 이전에 기존 펄 프로그래밍 언어를 발견하고 이름의 철자를 바꾸고 [26][11]이름에서 "a"를 삭제했습니다.

이름은 때때로 백로닉(backronym)으로 확장되기도 합니다.실용적 추출보고[27] 언어와 [28]매뉴얼 페이지에 있는 월만의 병리학적으로 절충적인 쓰레기 리스터.

오라일리 미디어가 출판한 프로그래밍 펄은 표지에 단봉낙타 그림이 그려져 있으며 흔히 "낙타 책"[29]이라고 불립니다.이 이미지는 펄의 비공식적인 상징이자 일반 해커 엠블럼이 되어 티셔츠와 다른 [citation needed]의류에 나타납니다.오라일리는 이 이미지를 상표로 소유하고 있지만 비상업적 용도로 사용할 수 있도록 라이센스를 부여하고 있으며, 승인 및 www.perl.com 에 대한 링크만 필요합니다.상업용 허가는 건별로 [30]결정됩니다.오라일리는 비상업적인 사이트를 위한 "Programming Republic of Perl" 로고와 펄을 [30]사용하는 모든 사이트를 위한 "Power by Perl" 버튼도 제공합니다.

Perl Foundation은 자회사인 Perl Mongers, PerlMonks, Perl.org기타 업체에 라이센스를 부여하는 양파라는 대체 기호를 소유하고 있습니다.그 상징은 진주 [32]양파에 대한 시각적인 말장난입니다.

모졸리셔스의 제작자인 세바스찬 리델(Sebastian Riedel)은 CC-SA 라이센스 버전 4.0으로 [33]이용 가능한 랩터 공룡을 묘사하는 로고를 만들었습니다.랩터의 아날로그는 [34]2010년부터 매트 S 트라우트가 제공한 일련의 강연에서 따왔습니다.

역사

초기 버전

래리 월(Larry [16]Wall)은 유니시스에서 프로그래머로 일하는 동안 1987년 펄에 대한 작업을 시작했습니다.[1]

[11] Wall이 이를 바탕으로 만든 Perl의 초기 언어는 텍스트 [11]조작을 도와주는 기존 언어를 사용하는 것이었습니다.

1988년 [35][36]6월에 출시된 펄 2는 더 나은 정규 표현 엔진을 특징으로 합니다.1989년 [35]10월에 출시된 펄 3은 이진 데이터 [37]스트림에 대한 지원을 추가했습니다.

1990년대

원래 펄에 대한 유일한 문서는 긴 맨 페이지 하나뿐이었습니다.1991년, 많은 펄 프로그래머들에게 표지 때문에 "카멜북"으로 알려진 프로그래밍 펄이 출판되었고 언어에 [38]대한 사실상의 참조가 되었습니다.동시에 Perl 버전 번호가 4로 부딪혔는데, 이는 언어의 주요한 변화를 표시하는 것이 아니라 [39]책에 잘 기록된 버전을 식별하기 위함입니다.펄 4는 1991년 [35]3월에 출시되었습니다.

Perl 4는 일련의 유지보수 릴리스를 거쳤으며 1993년 Perl 4.036으로 정점을 찍었고, 이에 따라 Wall은 Perl 4를 포기하고 Perl 5에 대한 작업을 시작했습니다.펄 5의 초기 설계는 1994년까지 계속되었습니다.Perl5-ports 메일링 리스트는 Perl5를 다른 플랫폼으로 포팅하는 작업을 조정하기 위해 1994년 5월에 설립되었습니다.Perl [40]5의 개발, 유지보수 및 포팅을 위한 주요 포럼으로 남아있습니다.

Perl 5.000은 1994년 [41]10월 17일에 출시되었습니다.이는 거의 완벽한 인터프리터의 재작성이며, 객체, 참조, 어휘(나의) 변수, 모듈 을 포함한 많은 새로운 기능을 언어에 추가했습니다.중요한 것은 모듈이 통역사를 수정하지 않고 언어를 확장할 수 있는 메커니즘을 제공했다는 것입니다.이를 통해 일반 펄 프로그래머가 새로운 언어 기능을 추가할 수 있게 되었음에도 불구하고 코어 인터프리터가 안정화될 수 있었습니다.Perl 5는 그 이후로 활발한 개발이 진행되고 있습니다.

Perl 5.001은 1995년 3월 13일에 출시되었습니다.Perl 5.002는 새로운 프로토타입 기능과 함께 1996년 2월 29일에 출시되었습니다.이를 통해 모듈 작성자는 Perl 내장된 것처럼 동작하는 서브루틴을 만들 수 있었습니다.Perl 5.003은 1996년 6월 25일 보안 릴리스로 [42]출시되었습니다.

Perl 5 역사상 가장 중요한 사건 중 하나는 적절한 언어 밖에서 발생했으며 모듈 지원의 결과였습니다.1995년 10월 26일, CPAN(Comprehensive Perl Archive Network)이 Perl 언어 및 Perl 모듈의 저장소로 설립되었으며, 2022년 12월 현재 14,324명 이상의 저자가 작성한 43,865개 배포판에 211,850개 이상의 모듈을 전달하고 있으며, 245개 이상의 [43]위치에서 전 세계적으로 미러링되고 있습니다.

Perl 5.004는 1997년 5월 15일에 출시되었으며 UNIVERSAL 패키지를 포함하여 모든 클래스가 자동으로 파생되는 기본 개체와 모듈 버전을 필요로 하는 기능을 제공했습니다.또 다른 중요한 발전은 CGI.pm 모듈을 포함한 것인데, 이 모듈은 Perl이 CGI 스크립트 언어로 인기를 얻는데 기여했습니다.

Perl 5.004는 Microsoft Windows, Plan 9, QNXAmiga대한 지원을 추가했습니다.OS.[44]

Perl 5.005는 1998년 7월 22일에 출시되었습니다.이 릴리스에는 regex 엔진에 대한 몇 가지 향상된 기능과 백엔드에 대한 새로운 후크가 포함되어 있습니다.B::*모듈,qr//regex quote operator, 기타 새로운 핵심 모듈의 대규모 선택, BeOS[46]포함한 여러 운영 체제에 대한 지원 추가.

2000–2020

메이저[41] 버전 최신[47] 업데이트
이전 버전, 이상 유지되지 않음: 5.4 1999-04-29
이전 버전, 이상 유지되지 않음: 5.5 2004-02-23
이전 버전, 이상 유지되지 않음: 5.6 2003-11-15
이전 버전, 이상 유지되지 않음: 5.8 2008-12-14
이전 버전, 이상 유지되지 않음: 5.10 2009-08-22
이전 버전, 이상 유지되지 않음: 5.12 2012-11-10
이전 버전, 이상 유지되지 않음: 5.14 2013-03-10
이전 버전, 이상 유지되지 않음: 5.16 2013-03-11
이전 버전, 이상 유지되지 않음: 5.18 2014-10-01
이전 버전, 이상 유지되지 않음: 5.20 2015-09-12
이전 버전, 이상 유지되지 않음: 5.22 2017-07-15
이전 버전, 이상 유지되지 않음: 5.24 2018-04-14
이전 버전, 이상 유지되지 않음: 5.26 2018-11-29
이전 버전, 이상 유지되지 않음: 5.28 2020-06-01
이전 버전, 이상 유지되지 않음: 5.30 2020-06-01
이전 버전, 이상 유지되지 않음: 5.32 2021-01-23
이전 버전, 이상 유지되지 않음: 5.34 2022-03-13
이전 버전이지만 여전히 유지됨: 5.36 2023-04-23
현재 안정 버전: 5.38 2023-07-02
범례:
구본
이전 버전, 여전히 유지됨
현재 안정 버전
최신 미리보기 버전
향후 출시

펄 5.6은 2000년 3월 22일에 출시되었습니다.주요 변경 사항으로는 64비트 지원, 유니코드 문자열 표현, 2 GiB 이상의 파일 지원, "우리의" [48][49]키워드 등이 있습니다.Perl 5.6을 개발할 때, 다른 오픈 소스 프로젝트와 유사한 버전으로 버전화 방식을 더 전환하기로 결정했습니다. 5.005_63 이후, 개발 버전은 홀수로, 안정된 버전은 [50]짝수로 계획되었습니다.

2000년, 월은 커뮤니티로부터 펄의 새로운 버전에 대한 제안을 요청했습니다.이 과정에서 Perl 6의 개발을 안내하는 데 사용될 361개의 RFC(request for comments) 문서가 생성되었습니다.2001년,[51] 펄 6용 Apocalypses에 대한 작업이 시작되었는데, 이 문서는 변경 요청을 요약하고 차세대 펄의 디자인을 제시하기 위한 일련의 문서입니다.이 문서들은 공식 문서가 아닌 RFC 요약본으로 제시되었습니다.이 시점에서 Perl 6은 [citation needed]언어에 대한 설명으로만 존재했습니다.

Perl 5.8은 2002년 7월 18일에 처음 출시되었으며 그 이후로 거의 매년 업데이트되었습니다.Perl 5.8은 유니코드 지원을 개선하고, 새로운 I/O 구현을 추가했으며, 새로운 스레드 구현을 추가했으며, 숫자 정확도를 개선했으며, 여러 개의 새로운 [52]모듈을 추가했습니다.2013년 현재 이 버전은 여전히 Perl의 가장 인기 있는 버전으로 남아 있으며 Red Hat 5, Suse 10, Solaris 10, HP-UX 11.31 및 AIX 5에서 사용됩니다.

2004년에 시놉시스에 대한 작업이 시작되었는데, 이 문서는 원래 아포칼립스어를 요약한 문서였지만 펄 6 언어의 사양이 되었습니다.2005년 2월, 오드리 탕[53]해스켈로 쓰여진 펄 6 통역사 퍼그스에 대한 작업을 시작했습니다.이것은 Perl 6를 현실화하기 위한 첫 번째 공동 노력이었습니다.이러한 노력은 [54]2006년에 중단되었습니다.

PONIE는 Perl On New Internal Engine의 약자입니다.PONIE 프로젝트는 2003년부터 2006년까지 존재했으며 Perl 5와 Perl 6 사이의 다리가 될 예정이었습니다.펄 6 가상 머신인 패럿에서 실행하기 위해 펄 5 인터프리터를 다시 쓰려는 노력이었습니다.목표는 전 [55]세계 수천 개 회사에서 수백만 줄의 Perl 5 코드의 미래를 보장하는 것이었습니다.PONIE 프로젝트는 2006년에 종료되어 더 이상 활발하게 개발되지 않고 있습니다.PONIE의 일부로 Perl 5 인터프리터가 개선된 부분 중 일부는 [56]해당 프로젝트에 포함되었습니다.

2007년 12월 18일, Perl 1.0 20주년 기념으로 Perl 5.10.0이 출시되었습니다.펄 5.10.0에는 주목할 만한 새로운 기능들이 포함되어 있어 펄 6에 근접하게 되었습니다.여기에는 스위치 문("given"/"when"이라고 함), 정규 표현식 업데이트, 스마트 매치 연산자(~)[57][58] 등이 포함되었습니다.비슷한 시기에 패럿 가상 머신과 함께 개발된 라쿠도 펄(Rakudo Perl)이라고 알려진 펄 6의 또 다른 구현에 대한 개발이 본격적으로 시작되었습니다.2009년 11월 현재 라쿠도 펄은 매월 정기적으로 출시되고 있으며 현재 펄 6의 가장 완벽한 구현체입니다.

Perl 5의 개발 프로세스에 큰 변화가 생겼습니다. 개발 커뮤니티는 안정적인 릴리스의 연간 일정과 함께 개발 릴리스의 월별 릴리스 주기로 전환했습니다.그 계획에 따르면 버그 수정 포인트 릴리스는 [citation needed]3개월마다 안정적인 릴리스를 따릅니다.

2010년 4월 12일 Perl 5.12.0이 출시되었습니다.주목할 만한 핵심 향상 기능은 다음과 같습니다.package NAME VERSION구문, yada yada 연산자(아직 구현되지 않은 자리 표시자 코드), 암묵적 제한, 전체 Y2038 컴플라이언스, regex 변환 오버로드, Dtrace 지원, 유니코드 5.2.[59]

2011년 5월 14일, 펄 5.14는 JSON 지원 [60]기능이 내장되어 출시되었습니다.

2012년 5월 20일 Perl 5.16이 출시되었습니다.주목할 만한 새로운 기능으로는 에뮬레이션하려는 특정 버전의 Perl을 지정할 수 있는 기능이 있으며, 이를 통해 사용자는 Perl 버전을 업그레이드할 수 있지만 [61][failed verification]일반적으로 호환되지 않는 오래된 스크립트를 실행할 수 있습니다.또한 Perl 5.16은 유니코드 6.[61]1을 지원하도록 코어를 업데이트합니다.

2013년 5월 18일 펄 5.18이 출시되었습니다.주목할 만한 새로운 기능으로는 새로운 dtrace hook, 어휘 서브, 더 많은 CORE:: 서브, 보안을 위한 해시 오버홀, 유니코드 6.[62]2 지원이 있습니다.

2014년 5월 27일 펄 5.20이 출시되었습니다.주목할 만한 새로운 기능으로는 서브루틴 시그니처, 해시 슬라이스/새로운 슬라이스 구문, 포스트픽스 참조 해제(실험), 유니코드 6.3, rand()가 있으며, 이는 일관된 난수 [63]생성기를 사용합니다.

일부 관측자들은 펄 5.10의 출시가 모던 펄 [64]운동의 시작과 함께 시작된 것으로 보고 있습니다.특히 이 문구는 CPAN의 사용을 수용하고 언어의 최근 발전을 활용하며 고품질 코드를 만드는 [65]데 엄격한 개발 스타일을 설명합니다.책 "모던 펄"[66]이 이 아이디어의 가장 눈에 띄는 표준 지지자일 수도 있지만, 계몽주의 펄 단체와[67] 같은 다른 단체들이 그 원인을 차지했습니다.

2012년 말과 2013년에 Perl 5의 대체 구현을 위한 여러 프로젝트가 시작되었습니다.Rakudo Perl [68]팀이 Perl6에서 Perl5를, Stevan Little과 [69]Friends가 moe를, Reini Urban 아래 Perl11 팀이 p2[70], Gperl by Goccy,[71] 그리고 Will Braswell이 주도하고 Perl11 [72]프로젝트와 제휴한 Kickstarter 프로젝트인 rperl.

펄 6 앤드 라쿠

Perl[73] 6 프로젝트의 로고인 Camelia

2000년컨퍼런스에서 존 오완트는 주요한 새로운 언어 [74]이니셔티브에 대한 사례를 제시했습니다.이로 인해 펄 6이라고 불리는 언어의 재설계 작업을 시작하기로 결정했습니다. 새로운 언어 기능에 대한 제안은 전반적으로 펄 커뮤니티에서 요청되었으며, 이 커뮤니티는 300개 이상의 [75]RFC를 제출했습니다.

Wall은 이후 몇 년 동안 RFC를 소화하고 Perl 6의 일관성 있는 프레임워크로 통합했습니다.그는 펄 6에 대한 자신의 디자인을 프로그래밍 펄의 장에 대응하기 위해 번호를 매긴 아포칼립스(apocalypses)라고 불리는 일련의 문서에서 발표했습니다.2011년 1월 현재 펄 6의 개발 사양은 시놉시스(Synopses)라는 디자인 문서에 캡슐화되어 있으며 아포칼립스에 [76]대응하도록 번호가 매겨져 있습니다.

Wall이 감독하는 Bradley M. Kunh의 논문 연구는 [77]Perl의 런타임으로 Java 가상 머신의 사용 가능성을 고려했습니다.쿤의 논문은 이러한 접근법이 문제가 있음을 보여주었습니다.2001년 펄 6은 패럿이라고 불리는 교차 언어 가상 머신에서 실행하기로 결정되었습니다.이는 패럿을 대상으로 하는 다른 언어들이 CPAN에 대한 네이티브 액세스를 얻어 어느 정도 수준의 언어 [citation needed]간 개발을 허용할 것임을 의미합니다.

2005년, 오드리 탕은 펄 6을 해스켈로 구현퍼그스 프로젝트를 만들었습니다.이는 Perl 6 언어의 테스트 플랫폼(실제 구현의 개발과는 별개) 역할을 했으며, 언어 설계자가 탐색할 수 있도록 했습니다.퍼그스 프로젝트는 Libera Chat #raku IRC 채널을 중심으로 활발한 Perl/Haskell 교차 언어 커뮤니티를 형성했습니다.Perl 6 설계 [78]팀은 많은 기능적 프로그래밍 영향을 흡수했습니다.

2012년 펄 6 개발은 주로 두 [79]개의 컴파일러를 중심으로 이루어졌습니다.

  1. Rakudo, Parot 가상 머신과 Java 가상 [80]머신에서 실행되는 구현입니다.
  2. 공통 언어 런타임을 대상으로 하는 Niecza.

2013년, 라쿠도를 위해 주로 설계된 C 언어 기반 가상 머신 MoarVM("메타모델 온 어 런타임")이 [81]발표되었습니다.

2019년 10월, 펄 6은 라쿠([82]Raku)로 이름이 변경되었습니다.

2017년 현재 라쿠도 구현과 MoarVM만 개발 중이며 자바 버추얼 머신과 자바스크립트와 같은 다른 가상 머신이 [83]지원됩니다.

펄 7

2020년 6월, 펄 7은 펄 [84]5의 후속작으로 발표되었습니다.펄 7은 초기에 펄 5.32를 기반으로 2021년 상반기에 출시될 예정이었고 후보를 더 [85]빨리 출시할 예정이었습니다.

이 계획은 2021년 5월에 수정되었으며, Perl 5의 출시 기간이나 버전은 [86]지정되지 않았습니다.펄 7이 출시되면 펄 5는 장기 유지보수에 들어갑니다.그러나 지원되는 Perl 5 버전은 계속해서 중요한 보안 [87]및 버그 수정을 받게 됩니다.

펄 7은 2020년 6월 24일 펄 컨퍼런스 인 더 클라우드에서 펄 [85][84]5의 후속작으로 발표되었다. 5.32를 기반으로, 펄 7은 현대의 펄 5 코드와 하위 호환되도록 계획되었습니다.use compat::perl5;호환성은 유지하지만 현대 코드는 보일러 플레이트의 일부를 떨어뜨릴 수 있습니다.

그러나 펄 7로 이동하려는 계획은 더 많은 논의를 불러 일으켰고, 펄 운영 위원회는 펄 7에서 기본값이 되는 프라그마스와 모듈에 대한 하위 호환성 문제를 피하기 위해 이를 취소했습니다.펄 7은 개발자들이 주요 릴리스 업그레이드를 [88]보증할 수 있는 충분한 기능을 추가할 때만 나올 것입니다.

설계.

철학

Wall에 따르면 Perl은 두 가지 슬로건을 가지고 있습니다.첫 번째는 TMTOWTDI(Tim Toady로 발음)로 알려진 "그것을 할 수 있는 하나 이상의 방법이 있다"입니다.이 모토를 지지하는 사람들이 주장하듯이, 이 철학은 간결한 [89][90][91]진술을 쉽게 쓸 수 있게 만듭니다.

두 번째 슬로건은 '쉬운 것은 쉽고 어려운 것은 [16]가능해야 한다' 입니다.

Perl의 설계는 컴퓨터 산업의 세 가지 광범위한 추세, 즉 하드웨어 비용 하락, 인건비 상승, 컴파일러 기술의 개선에 대한 대응으로 이해될 수 있습니다.포트란이나 C 같은 초기 컴퓨터 언어들은 값비싼 컴퓨터 하드웨어를 효율적으로 사용하는 것을 목표로 삼았습니다.대조적으로 펄은 컴퓨터 프로그래머들이 프로그램을 더 빠르고 [92]쉽게 작성할 수 있도록 설계되었습니다.

Perl은 CPU 및 메모리 요구사항이 증가하는 대신 프로그래머의 작업을 용이하게 해주는 많은 기능을 가지고 있습니다.여기에는 자동 메모리 관리, 동적 타이핑, 문자열, 목록 및 해시, 정규 표현식, 인트로스펙션, 및eval()기능.펄은 제로 원 인피니티 [citation needed]규칙과 유사한 개념인 "빌트인 [29]제한 없음" 이론을 따릅니다.

Wall은 언어학자로서 훈련을 받았고 Perl의 디자인은 언어학적 원리에 의해 매우 잘 알려져 있습니다.예를 들어 Huffman 코딩(일반적인 구성은 짧아야 함), 우수한 최종 가중치(중요한 정보가 우선), 많은 언어 프리미티브 모음 등이 있습니다.Perl은 Perl [93]인터프리터를 복잡하게 만드는 부분에서도 인간이 쓰기에 간결하고 자연스러운 언어 구성을 선호합니다.

펄의 구문은 "다른 것들은 [94]다르게 보여야 한다"는 생각을 반영합니다.예를 들어 스칼라, 배열 및 해시에는 서로 다른 선두 시그일이 있습니다.배열 인덱스와 해시 키는 다른 종류의 가새를 사용합니다.문자열과 정규식에는 서로 다른 표준 구분 기호가 있습니다. 접근법은 단순하고 보편적인 기호 표현으로 구성된 동일한 기본 구문이 모든 목적에 [citation needed]사용되는 Lisp와 같은 언어와 대조될 수 있습니다.

펄 언어와 이를 둘러싼 커뮤니티 및 문화 모두에 광범위한 실용적인 경향이 있습니다.프로그래밍 펄의 서문은 다음과 같이 시작합니다. [16]"펄은 당신의 일을 완수하기 위한 언어입니다."이것의 한 가지 결과는 Perl이 깔끔한 언어가 아니라는 것입니다.많은 기능을 포함하고 규칙에 대한 예외를 허용하며 구문적 모호성을 해결하기 위해 휴리스틱을 사용합니다.컴파일러의 관대한 성격 때문에 버그는 때때로 찾기 어려울 수 있습니다.펄의 함수 문서는 목록과 스칼라 컨텍스트에 내장된 함수의 변형 동작에 대해 "일반적으로 [95]일관성을 원하지 않는 한 원하는 대로 합니다."라고 말합니다.

특징들

펄의 전체적인 구조는 대체로 C에서 유래합니다.Perl은 변수, , 할당 문, 브레이스 제한 블록, 제어 구조서브루틴[96]포함하는 절차적입니다.

펄은 셸 프로그래밍 기능도 가지고 있습니다.모든 변수는 선행 시그일로 표시되어 변수를 문자열직접 보간할 수 있습니다.그러나 셸과 달리 Perl은 변수에 대한 모든 액세스에 sigil을 사용하며, sigil을 사용하는 대부분의 다른 프로그래밍 언어와는 달리 sigil은 변수의 유형이 아니라 표현식의 유형을 나타냅니다.예를 들어, 배열은 기호 "@"로 표시됩니다(예를 들어@arrayname, 배열의 개별 멤버는 스칼라 시그일 "$"로 표시됩니다(예:$arrayname[3]펄에는 정렬, 운영 체제 [citation needed]기능 호출같은 셸 프로그래밍에 자주 사용되는 도구를 제공하는 많은 내장 기능도 있습니다.

펄은 AWK에서 해시("연관 배열")를 가져오고 sed에서 정규 표현식을 가져옵니다.이를 통해 많은 구문 분석, 텍스트 처리 및 데이터 관리 작업이 간소화됩니다.Lisp와 공유란 블록의 마지막 값을 암시적으로 반환하는 것이며, 모든 문은 더 큰 식 [citation needed]자체에서 사용할 수 있는 표현이기도 합니다.

Perl 5는 복잡한 데이터 구조, 1등급 함수(, 값으로 폐쇄), 객체 지향 프로그래밍 모델을 지원하는 기능을 추가했습니다.여기에는 컴파일러 지시어와 함께 참조, 패키지, 클래스 기반 메서드 디스패치 및 어휘 범위 변수가 포함됩니다(예:strict 프래그마).Perl 5에 도입된 주요 추가 기능은 코드를 재사용 가능한 모듈로 패키징할 수 있는 기능이었습니다.월은 나중에 "펄 5의 모듈 시스템의 전체 의도는 펄 [97]코어보다는 펄 컬처의 성장을 장려하는 것이었습니다."라고 말했습니다.

펄의 모든 버전은 자동 데이터 타이핑과 자동 메모리 관리를 수행합니다.인터프리터는 프로그램에 포함된 모든 데이터 개체의 유형과 스토리지 요구 사항을 알고 있으며, 참조 계산을 사용하여 필요에 따라 해당 개체에 대한 스토리지를 할당하고 자유화합니다(따라서 수동 개입 없이는 순환 데이터 구조를 할당 해제할 수 없음).합법적 유형 변환(예: 숫자에서 문자열로의 변환)은 런타임에 자동으로 수행되므로 불법 유형 변환은 치명적인 [citation needed]오류입니다.

구문

펄은 비평가들에 의해 "라인 노이즈"와 쓰기 전용 언어로 언급되었습니다.가장 초기의 언급은 Randal L이 쓴 Perl 4 튜토리얼 책인 Learning Perl의 첫 번째 판에서였습니다. 슈워츠[98]첫 장에서 "네, 펄은 시작하지 않은 사람에게는 라인 노이즈처럼 보일 때가 있지만 노련한 [99]펄 프로그래머에게는 인생의 사명을 가진 체크섬 라인 노이즈처럼 보입니다."라고 말합니다.그는 또한 Perl이 쓰기 전용 언어라는 비난을 "적절한 주의"[99]로 코딩함으로써 피할 수 있다고 말했습니다.Perl 개요 문서 perlintro는 내장된 "마법" 스칼라 변수의 이름이 "구두 또는 [100]선 잡음처럼 보인다"고 명시합니다.그러나 영어 모듈은 길고 짧은 영어 대안을 제공합니다.perlstyle 문서는 정규 표현식에서 선 잡음이 사용하여 완화될 수 있다고 진술합니다./x공백을 [101]추가할 수식어.

Perl 6 FAQ에 따르면 Perl 6은 Perl 5 비평가로부터 "대부분의 구두점 변수"[102]를 제거하고 정규 구문을 검사하는 것을 포함하여 "줄 잡음" 주장을 이끌어내는 "일반적인 의심"을 완화하도록 설계되었습니다.펄 6 FAQ는 또한 동명사전치사영어[102]한 부분인 것처럼 펄의 줄 잡음이라고도 언급합니다.2012년 12월 블로그에 올린 글에서 크로매틱은 펄 6의 디자인이 "잘 정의된 문법"과 더불어 "개선된 타입 시스템, 지능적 메타 모델, 메타 연산자를 가진 통합 객체 시스템,"그리고 만연한 [103]게으름과 같은 친절함을 제공하는 보다 명확한 맥락 체계를 제공합니다.그는 또한 "펄6는 펄5에 [103]부족한 일관성과 일관성을 가지고 있다"고 말했습니다.

펄의 이전 버전에서는 헬로 월드 프로그램을 다음과 같이 쓸 수 있습니다.

활자로 찍어내다 "안녕, 세상이여!"; 

여기에 주어진 시작 값에서 초 단위를 카운트 다운하는 더 복잡한 Perl 프로그램이 있습니다.

#!/usr/bin/bin/bin 사용하다 엄격한.; 사용하다 경고.;  나의 ( $560, 총액 $ );  $560 = 총액 $ = 교대의(@ARGV);  STDOUT->자동 플러시(1);  하는 동안에 ( $560 ) {     활자로 찍어내다 ( "남은 %s/%s \r", $560--, 총액 $ );     수면. 1; }  활자로 찍어내다 "\n"; 

Perl 인터프리터는 명령줄의 일회성 스크립트에도 사용할 수 있습니다.(Bash와 같은 sh 호환 셸에서 호출된) 다음 예제는 현재 디렉터리에서 .txt로 끝나는 모든 파일의 문자열 "Bob"을 "Robert"로 변환합니다.

$perl -i.bak -lp -e's/Bob/Robert/g' *.txt

실행

Perl 5를 통한 Perl 버전에 대해 Perl 언어에 대한 작성된 사양이나 표준이 없으며 현재 Perl 버전에 대해 작성할 계획도 없습니다.통역사를 구현한 것은 단 한 번뿐이며, 그와 함께 언어도 진화해왔습니다.그 통역사는 기능 테스트와 함께 언어의 사실상의 명세로 자리잡고 있습니다.그러나 Perl 6은 [104]사양으로 시작되었으며,[citation needed] 몇몇[105] 프로젝트는 사양의 일부 또는 전부를 구현하는 것을 목표로 합니다.

Perl은 C로 작성된 코어 인터프리터와 Perl 및 C로 작성된 많은 모듈 모음으로 구현됩니다.2010년 현재 인터프리터는 150,000 라인의 C 코드이며 일반적인 머신 아키텍처에서 1MB 실행 파일로 컴파일됩니다.또는 인터프리터를 링크 라이브러리로 컴파일하여 다른 프로그램에 내장할 수도 있습니다.배포판에는 거의 500개의 모듈이 있으며, 200,000 줄의 Perl과 350,000 줄의 C 코드로 구성되어 있습니다(모듈에 있는 C 코드의 대부분은 문자 인코딩 [citation needed]테이블로 구성되어 있습니다).

인터프리터는 객체 지향 아키텍처를 가지고 있습니다.Perl 언어의 모든 요소(스케일러, 배열, 해시, 코드레프, 파일 핸들)는 C 구조로 인터프리터에 표현됩니다.이러한 구조의 연산은 매크로, typeef 및 함수의 대규모 집합으로 정의되며, 이들은 Perl C API를 구성합니다.Perl API는 시작되지 않은 사용자에게 당황스러울 수 있지만, 시작 지점은 일관된 이름 지정 체계를 따르므로 [citation needed]사용자에게 지침을 제공합니다.

Perl 인터프리터의 수명은 컴파일 단계와 실행 [106]단계로 크게 나뉩니다.Perl에서 단계는 인터프리터의 라이프 사이클에서 주요한 단계입니다.각 인터프리터는 각 단계를 한 번만 거치며, 단계는 고정된 [citation needed]순서로 따릅니다.

펄의 컴파일 단계에서 일어나는 대부분의 일은 컴파일이며 펄의 실행 단계에서 일어나는 대부분의 일은 실행이지만 중요한 예외가 있습니다.펄은 컴파일 단계에서 펄 코드를 실행하는 기능을 중요하게 활용합니다.또한 Perl은 실행 단계로의 컴파일을 지연시킵니다.어떤 순간에 실제로 발생하는 처리의 종류를 나타내는 용어는 컴파일 시간과 실행 시간입니다.Perl은 컴파일 단계 동안 대부분의 시점에서 컴파일 시간에 있지만, 실행 단계에서 컴파일 시간이 입력될 수도 있습니다.문자열 인수의 코드 컴파일 시간이 에 전달되었습니다.eval실행 단계 중에 내장된 기능이 발생합니다.Perl은 컴파일 단계에서 실행 시간에 있는 경우가 많으며 실행 단계의 대부분을 실행 시간에 사용합니다.코드인BEGINblocks는 실행 시간에는 실행되지만 컴파일 단계에서는 실행됩니다.

컴파일 시, 인터프리터는 Perl 코드를 구문 트리에 파싱합니다.실행 시간에는 트리를 걸으며 프로그램을 실행합니다.텍스트는 한 번만 파싱되며 구문 트리는 실행되기 전에 최적화가 적용되므로 실행이 상대적으로 효율적입니다.구문 트리의 컴파일 시간 최적화에는 일정한 폴딩 및 컨텍스트 전파가 포함되지만, 피프홀 최적화도 [107]수행됩니다.

펄은 컴파일 단계에서 [108]실행되는 런타임 코드에 따라 구문 분석이 영향을 받을 수 있기 때문에 튜링 완성 문법을 가지고 있습니다.따라서 Perl은 직선적Lex/Yaccluser/parser 조합으로 구문 분석할 수 없습니다.대신 인터프리터는 언어의 [citation needed]모호성을 해결하기 위해 수정된 GNU 바이손 파서와 조정하는 자체 렉서를 구현합니다.

펄 인터프리터()perl만이 펄 언어(Perl)를 파싱할 수 있음을 의미하는 "오직 펄만이 [109]펄을 파싱할 수 있다"고 종종 말하지만, 일반적으로 이마저도 사실이 아닙니다.Perl 인터프리터는 컴파일 단계에서 튜링 머신을 시뮬레이션할 수 있기 때문에 모든 경우에 파싱을 완료하기 위해 중단 문제를 결정해야 합니다.중단 문제는 결정할 수 없다는 것은 오래된 결과이며, 따라서 Perl조차도 항상 Perl을 구문 분석할 수 있는 것은 아닙니다.Perl은 자체 컴파일 단계에서 사용자에게 전체 프로그래밍 능력에 대한 접근을 제공하는 이례적인 선택을 합니다.이론적 순도 측면에서 비용은 높지만 실제적인 불편함은 드문 [110]것 같습니다.

소스 코드 분석기자동 입력기와 같이 Perl을 파싱하는 다른 프로그램은 모호한 구문 구조뿐만 아니라 일반적인 경우 Perl 파싱의 결정 불가능성과 싸워야 합니다.애덤 케네디의 PPI 프로젝트는 펄을 실행 코드로 파싱하는 대신 펄 코드를 문서로 파싱하는 데 초점을 맞췄습니다."펄을 파싱하는 것이 '홀팅 문제'[111]를 겪고 있다"고 처음 추측한 사람은 케네디였는데, 나중에 [112]증명되었습니다.

Perl은 코어 Perl 언어에 대한 250,000개 이상의 기능 테스트와 코어 모듈에 대한 250,000개 이상의 기능 테스트로 배포됩니다.이들은 정상적인 빌드 프로세스의 일부로 실행되며 인터프리터와 인터프리터의 핵심 모듈을 광범위하게 연습합니다.Perl 개발자는 인터프리터의 변경으로 소프트웨어 버그가 발생하지 않도록 기능 테스트에 의존합니다. 또한 인터프리터가 자신의 시스템에서 기능 테스트를 통과하는 것을 확인한 Perl 사용자는 인터프리터가 제대로 [citation needed]작동하고 있다는 높은 자신감을 가질 수 있습니다.

포트

Perl은 Artistic License 1.0[5][6] GNU General Public [7]License에 따라 이중 라이선스가 부여됩니다.배포판은 대부분의 운영 체제에서 사용할 수 있습니다.특히 유닉스 및 유닉스 계열 시스템에서 널리 사용되지만 대부분의 최신 플랫폼과 오래된 플랫폼으로 포팅되었습니다.보고된 6개의[citation needed] 예외를 제외하고, Perl은 모든 POSIX 호환 또는 Unix 호환 [113]플랫폼의 소스 코드에서 컴파일할 수 있습니다.

MacPerl이라는 특수 포트는 기존 Mac OS 환경에 필요한 특이한 변경 사항 때문에 [114]독립적으로 제공되었습니다.

Comprehensive Perl Archive Network는 [115]각각에서 사용 가능한 배포판에 대한 링크와 함께 지원되는 플랫폼의 전체 목록을 제공합니다.CPAN은 핵심 Perl [citation needed]배포판에 속하지 않는 공개적으로 사용 가능한 Perl 모듈의 소스이기도 합니다.

ActivePerl은 핵심 Perl 릴리스[116]추적하는 정기 릴리스가 있는 ActiveState의 폐쇄형 소스 배포판입니다.이 배포판에는 일반 Perl 모듈의 설치, 제거, 업그레이드 및 관리를 위해 널리 사용되는 PPM([117]Perl Package Manager)이 포함되어 있었지만, 이 도구는 ActivePerl 5.[118]28을 기점으로 중단되었습니다.펄 언어를 구현하는 WSH(Windows Script Host) 엔진PerlScript도 포함되어 있습니다.Visual Perl은 Perl을 Visual Studio에 추가하는 ActiveState 도구입니다.NET 개발 제품군.VBScript-to-Perl 변환기, 윈도우용 Perl 컴파일러, awksed-to-Perl 변환기도 이 회사에서 제작하였으며, 2002년 이후 [119]유닉스/리눅스/포식스 버전을 제외한 모든 배포판과 코모도 IDE를 포함하는 윈도우용 ActiveState CD에 포함되어 있습니다.

성능

컴퓨터 언어 벤치마크 게임은 전형적인 프로그래밍 문제의 구현 성능을 여러 프로그래밍 [120]언어로 비교합니다.제출된 Perl 구현은 일반적으로 메모리 사용 스펙트럼의 하이엔드를 향해 수행되며 다양한 속도의 결과를 제공합니다.벤치마크 게임에서 Perl의 성능은 통역된 [121]언어에서 전형적인 것입니다.

펄이 실행될 때마다 소스를 컴파일해야 하기 때문에 컴파일된 언어의 비슷한 프로그램보다 큰 펄 프로그램이 더 느리게 시작됩니다.YAPC에서 한 강연에서::유럽 2005 컨퍼런스와 후속 기사 "A Timely Start"에서 Jean-Louis Leroy는 Perl 인터프리터가 자신의 과대규모 포함 [122]경로 내에서 모듈을 찾는데 상당한 시간을 소비했기 때문에 펄 프로그램이 실행되는 데 예상보다 훨씬 더 오래 걸렸다는 것을 발견했습니다.자바, 파이썬, 루비와 달리 펄은 사전 [123]컴파일을 위한 실험적 지원만 있습니다.따라서 Perl 프로그램은 모든 실행 시 이 오버헤드 위약금을 지불합니다.일반적인 프로그램의 실행 단계는 상각된 시작 시간이 상당하지 않을 정도로 길지만, 매우 짧은 실행 시간을 측정하는 벤치마크는 이러한 [124]오버헤드로 인해 왜곡될 가능성이 있습니다.

이러한 상황을 개선하기 위해 여러 가지 도구들이 도입되었습니다.그러한 첫 번째 도구는 Apache의 mod_perl로, 소형 Perl 프로그램이 빠르게 호출되는 가장 일반적인 이유 중 하나인 CGI 웹 개발을 해결하려고 했습니다.ActivePerl은 마이크로소프트 ISAPI를 통해 비슷한 성능 향상을 [125]제공합니다.

Perl 코드가 컴파일되면 실행 단계 동안 C나 C++와 같은 컴파일된 언어로 작성된 프로그램에는 일반적으로 존재하지 않는 추가 오버헤드가 발생합니다.이러한 오버헤드의 예로는 바이트코드 해석, 참조 카운트 메모리 관리, 동적 유형 검사 [126]등이 있습니다.

가장 중요한 루틴은 C와 같은 다른 언어로 작성될 수 있으며, 이는 단순한 인라인 모듈이나 더 복잡하지만 유연한 XS [127]메커니즘을 통해 Perl에 연결될 수 있습니다.

적용들

Perl에는 다양하고 많은 표준 및 타사 모듈의 가용성이 복합적으로 작용하는 다양한 응용 프로그램이 있습니다.

펄은 주로 CGI 스크립트를 작성하는 데 사용되었습니다. 펄로 작성된 대형 프로젝트에는 cPanel, Slash, Bugzilla, RT, TWiki Movable Type이 포함됩니다. 펄을 광범위하게 사용하는 트래픽이 많은 웹 사이트에는 Priceline.com , Craigslist, IMDb, LiveJournal, DuckDuckGo, SlashdotTicketmaster가 포함됩니다.또한 PHP나 파이썬 대신 웹 개발용으로 인기 있는 LAMP 기술 스택의 선택적인 구성 요소이기도 합니다.펄은 데비안 리눅스 [132]배포판에서 시스템 프로그래밍 언어로 광범위하게 사용됩니다.

펄은 종종 글루 언어로 사용되며, 상호 운용을 위해 특별히 설계되지 않은 시스템과 인터페이스를 하나로 묶고, "데이터 멍"[133] 즉, 보고서 작성과 같은 작업을 위해 많은 양의 데이터를 변환하거나 처리합니다.사실, 이러한 장점들은 밀접하게 연결되어 있습니다.펄은 시스템 관리자들에게 인기 있는 다목적 언어가 되는데, 특히 종종 "원라이너 프로그램"이라고 불리는 짧은 프로그램들이 하나[citation needed]명령줄에서 입력되고 실행될 수 있기 때문입니다.

펄 코드는 윈도우와 유닉스에서 휴대용으로 만들 수 있으며, 이러한 코드는 소프트웨어 공급업체(COTS와 맞춤형)에서 소프트웨어 빌드 [citation needed]및 배포 스크립트의 패키징 및 유지보수를 단순화하기 위해 종종 사용됩니다.

Perl/TkwxPerl은 Perl 스크립트에 그래픽 사용자 인터페이스를 추가하는 데 일반적으로 사용됩니다.

Perl의 텍스트 처리 기능은 SQL 쿼리를 생성하는 데 사용할 수 있으며, 어레이, 해시 및 자동 메모리 관리를 통해 반환된 데이터를 쉽게 수집하고 처리할 수 있습니다.예를 들어 팀 번스의 Perl DBI Application Programming Interface(API)에서 API에 대한 인수는 SQL 쿼리의 텍스트가 될 수 있으므로 동시에 여러 언어로 프로그래밍할 수 있습니다(예: 여기 문서에서 HTML, JavaScript 및 SQL을 사용하여 웹 페이지를 생성하는 경우).Perl 변수 보간법을 사용하여 각 SQL 쿼리를 프로그래밍 방식으로 사용자 지정하고 Perl 어레이 또는 해시를 각 SQL 쿼리의 결과 데이터 세트를 프로그래밍 방식으로 유지하는 구조로 지정하면 Perl 하위 프로그램에서 [134]후처리할 수 있는 대용량 데이터를 처리할 수 있습니다.Perl의 초기 버전에서는 인터프리터를 클라이언트 측 데이터베이스 라이브러리와 다시 연결하여 데이터베이스 인터페이스를 만들었습니다.이 작업은 매우 어려웠기 때문에 가장 중요하고 널리 사용되는 데이터베이스 중 일부에 대해서만 수행되었으며, 결과적으로 제한되었습니다.perl[135]번에 하나의 데이터베이스 인터페이스만 사용할 수 있습니다.

Perl 5에서 데이터베이스 인터페이스는 Perl DBI 모듈로 구현됩니다.DBI(Database Interface) 모듈은 Perl 응용 프로그램에 데이터베이스 독립적인 단일 인터페이스를 제공하며 DBD(Database Driver) 모듈은 50여 개의 다양한 데이터베이스에 액세스하는 세부 정보를 처리합니다. 대부분의 ANSI SQL [136]데이터베이스에는 DBD 드라이버가 있습니다.

DBI는 데이터베이스 핸들 및 쿼리에 대한 캐싱 기능을 제공하므로 mod_perl[137]같은 장시간 실행 환경에서 성능을 크게 향상시켜 대용량 시스템에서 슬래시[138]효과와 같은 로드 급증을 방지할 수 있습니다.

현대 펄 응용 프로그램, 특히 Catalyst와 같은프레임워크를 사용하여 작성된 응용 프로그램에서 DBI 모듈은 종종 DBIx와 같은 객체 관계형 맵퍼를 통해 간접적으로 사용됩니다.클래스, 클래스::DBI[139] 또는 Rose::DB:: SQL[140] 쿼리를 생성하고 애플리케이션 [141]작성자에게 데이터를 투명하게 처리하는 개체입니다.

지역 사회

펄의 문화와 커뮤니티는 언어 자체와 함께 발전해왔습니다.유즈넷은 펄이 도입된 최초의 공개 장소였지만, 진화 과정을 거치면서 펄의 커뮤니티는 월드 와이드 웹의 도입을 포함한 광범위한 인터넷 기반 서비스의 성장에 의해 형성되었습니다.펄을 둘러싼 커뮤니티는 사실 월의 첫 번째 "양파의 상태"[142] 토크의 주제였습니다.

스테이트 오브 더 양파는 펄과 그 공동체의 진행 상황에 대한 월의 연간 기조 스타일 요약의 이름입니다.그들은 펄의 문화, 더 넓은 해커 문화, 월의 언어적 배경, 때로는 그의 가족 생활, 그리고 때로는 그의 기독교적 [143]배경에 대한 언급을 사용하는 그의 특징적인 유머로 특징지어집니다.각 강연은 다양한 Perl 컨퍼런스에서 처음 진행되며 온라인으로도 게시됩니다.

이메일, 유즈넷, 게시판 게시물에서 JAPH(Just another Perl hacker) 프로그램은 랜달 L에 의해 시작된 일반적인 경향입니다. 초기 [144]펄 전문 트레이너 중 한 명인 슈워츠.펄 문화권에서 펄 프로그래머는 펄 해커로 알려져 있으며, 이는 "저스트 어나더 펄 해커(Just another Perl hacker)"라는 문구를 출력하기 위해 짧은 프로그램을 작성하는 관행에서 비롯되었습니다.원래 개념에서 볼 때, 이 프로그램들은 이메일이나 유즈넷 메시지의 서명에 들어갈 정도로 적당히 난잡하고 짧습니다.슈워츠가 개발한 "정통적인" JAPH는 끝에 쉼표를 포함하지만, 종종 [145]생략됩니다.

펄 골프(Perl golf)는 펄 프로그램에서 사용되는 문자(키 스트로크)의 수를 최소로 줄이는 취미로, 골프 선수들이 라운드에서 가능한 한 적은 샷을 시도하는 과 매우 유사합니다.이 문구의 첫[146] 번째 사용은 초보자를 가르치기 위한 보행자 코드와 숙련된 펄 프로그래머를 즐겁게 할 가능성이 있는 간결한 해킹 사이의 차이를 강조했는데, 후자의 예는 유즈넷 게시물과 다른 곳에서 이미 서명에 사용된 JAPH였습니다.이전 수십 년 동안 APL이라는 언어에서 비슷한 묘기가 이름 없는 취미였습니다.펄을 사용하여 RSA 암호화를 수행하는 프로그램을 작성함으로써 이 [147]취미에 대한 광범위하고 실용적인 관심이 생겨났습니다.그 후 몇 년 동안, "코드 골프"라는 용어는 다른 [148]언어의 취미에 적용되었습니다.펄 골프 아포칼립스는 2000년 7월 캘리포니아 몬테레이에서 열린 펄 컨퍼런스 4.0에서 열렸습니다.

C와 마찬가지로 난독화된 코드 경쟁은 1990년대 후반에 잘 알려진 취미였습니다.난독화 펄 콘테스트(Obfuscated Perl Contest)는 1996년부터 2000년까지 펄 저널(Perl Journal)이 개최한 대회로, 펄의 구문적 유연성을 중요한 덕목으로 삼았습니다.공간을 효율적으로 활용한 프로그램인 "가장 강력한" 부문과 유즈넷 시그니처 [149]블록 스타일의 76자 4행에 맞는 프로그램인 "최우수 4행 시그니처" 부문에 상이 주어졌습니다.

펄 시(Perl poetry)는 블랙 펄(Black Perl)로 알려진 작품과 같이 합법적인 펄 코드로 컴파일될 수 있는 시를 쓰는 관행입니다.Perl poetry는 Perl 언어에서 사용되는 많은 영어 단어에 의해 가능합니다.새로운 시들은 정기적으로 펄 [150]몽크의 커뮤니티에 제출됩니다.

참고 항목

참고문헌

  1. ^ a b c Ashton, Elaine (1999). "The Timeline of Perl and its Culture (v3.0_0505)". Archived from the original on January 11, 2013. Retrieved March 12, 2004.
  2. ^ "perl 5.38.0 is now available". www.nntp.perl.org. Retrieved July 3, 2023.
  3. ^ "perl 5.36.1 is now available". www.nntp.perl.org. Retrieved April 24, 2023.
  4. ^ "Perl 5.39.1 is now available!". www.nntp.perl.org. Retrieved July 20, 2023.
  5. ^ a b "The "Artistic License" - dev.perl.org". dev.perl.org. Archived from the original on July 24, 2018. Retrieved June 24, 2016.
  6. ^ a b 2018년 7월 25일 Wayback Machine에서 Artistic Archived - Perl 5 git 저장소의 파일
  7. ^ a b "Perl Licensing". dev.perl.org. Archived from the original on January 22, 2011. Retrieved January 8, 2011.
  8. ^ Larry Wall (December 12, 2007). "Programming is Hard, Let's Go Scripting..." Archived from the original on July 28, 2017. Retrieved April 14, 2019. All language designers have their occasional idiosyncracies. I'm just better at it than most.
  9. ^ Lapworth, Leo. "General Questions About Perl". Perl FAQ. Perl.org. Archived from the original on May 28, 2013. Retrieved February 24, 2012.
  10. ^ "perl(1): Practical Extraction/Report Language - Linux man page". Linux.die.net. Archived from the original on June 3, 2013. Retrieved July 23, 2013.
  11. ^ a b c d e f Long, Tony. "Dec. 18, 1987: Perl Simplifies the Labyrinth That Is Programming Language". Wired. ISSN 1059-1028. Retrieved February 14, 2023.
  12. ^ Sheppard, Doug (October 16, 2000). "Beginner's Introduction to Perl". dev.perl.org. Archived from the original on June 5, 2011. Retrieved January 8, 2011.
  13. ^ a b "Larry Wall, the Guru of Perl Linux Journal". www.linuxjournal.com. Retrieved August 30, 2023.
  14. ^ "About Perl". perl.org. Archived from the original on November 6, 2015. Retrieved April 20, 2013. "Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language that has its own development team. Its existence has no significant impact on the continuing development of "Perl 5".
  15. ^ "Path to Raku". GitHub. Archived from the original on November 12, 2020. Retrieved January 14, 2021. This document describes the steps to be taken to effectuate a rename of Perl 6 to Raku
  16. ^ a b c d Wall, Larry; Christiansen, Tom; Orwant, Jon (July 2000). Programming Perl, Third Edition. O'Reilly Media. ISBN 978-0-596-00027-1.
  17. ^ "How programs are measured Computer Language Benchmarks Game". benchmarksgame-team.pages.debian.net. Archived from the original on July 12, 2020. Retrieved October 5, 2020.
  18. ^ "RSA in 3 lines of perl - Everything2.com". everything2.com. Archived from the original on October 8, 2020. Retrieved October 5, 2020.
  19. ^ "Language Evaluations". Archived from the original on March 10, 2015. Retrieved January 30, 2015. Perl's strongest point is its extremely powerful built-in facilities for pattern-directed processing of textual, line-oriented data formats; it is unsurpassed at this.
  20. ^ "You Used Perl to Write WHAT?!". January 24, 2008. Archived from the original on February 4, 2015. Retrieved February 4, 2015. perl has always been the go-to language for any task that involves pattern-matching input
  21. ^ "The Importance of Perl". Archived from the original on February 2, 2015. Retrieved February 4, 2015. Perl's unparalleled ability to process text...
  22. ^ Smith, Roderick W. (June 21, 2002). Advanced Linux Networking. Addison-Wesley Professional. p. 594. ISBN 978-0-201-77423-8.
  23. ^ Sheppard, Doug (October 16, 2000). "Beginner's Introduction to Perl". O'Reilly Media. Archived from the original on June 4, 2008. Retrieved July 27, 2008.
  24. ^ Leonard, Andrew. "The joy of Perl". Salon.com. Archived from the original on July 6, 2012. Retrieved June 5, 2012.
  25. ^ "Scripting on the Lido Deck". Wired. March 7, 2016. Archived from the original on March 7, 2016. Retrieved February 14, 2023.
  26. ^ Richardson, Marjorie (May 1, 1999). "Larry Wall, the Guru of Perl". Linux Journal. Archived from the original on July 20, 2013. Retrieved January 3, 2011.
  27. ^ Schwartz, Randal; foy, brian; Phoenix, Tom (June 16, 2011). Learning Perl. O'Reilly Media, Inc. p. 4. ISBN 978-1449313142. Perl is sometimes called the "Practical Extraction and Report Language," although it has also been called a "Pathologically Eclectic Rubbish Lister," among other expansions. It's actually a backronym, not an acronym, since Larry Wall, Perl's creator, came up with the name first and the expansion later. That's why "Perl" isn't in all caps. There's no point in arguing that expansion is correct: Larry endorses both.
  28. ^ Wall, Larry. "perl - The Perl language interpreter". Perl 5 version 12.2 documentation. Archived from the original on July 1, 2013. Retrieved January 26, 2011.
  29. ^ a b Schwartz, Randal L; Phoenix, Tom; Foy, Brian (December 6, 2007). Learning Perl, Third Edition. O'Reilly Media. ISBN 978-0-596-00132-2.
  30. ^ a b "The Perl Camel Usage and Trademark Information". O'Reilly Media. Archived from the original on April 25, 2018. Retrieved January 9, 2011.
  31. ^ "Perl Trademark". The Perl Foundation. Archived from the original on May 3, 2011. Retrieved January 9, 2011.
  32. ^ Gillmore, Dan (October 25, 1998). "Republic Of Perl". Chicago Tribune. Archived from the original on April 30, 2011. Retrieved January 10, 2011.
  33. ^ Riedel, Sebastian (January 18, 2012). "Perl 5 Raptor". Sebastian Riedel. Archived from the original on June 11, 2018. Retrieved November 12, 2017.
  34. ^ Trout, Matt (June 16, 2005). "State of the Velociraptor - Phase two". Shadowcat Systems Limited. Archived from the original on November 13, 2017. Retrieved November 12, 2017.
  35. ^ a b c Kalita, Jugal (December 2003). On Perl: Perl for Students and Professionals. Universal-Publishers. ISBN 978-1-58112-550-4.
  36. ^ "Perl Culture". docstore.mik.ua. Retrieved March 16, 2023.
  37. ^ Holloway, Ruth. "Perl turns 30 and its community continues to thrive Opensource.com". opensource.com. Retrieved June 23, 2023.
  38. ^ "Programming Perl, 3rd Edition [Book]". www.oreilly.com. Retrieved April 11, 2023.
  39. ^ "perlhist - the Perl history records - Perldoc Browser". perldoc.perl.org. Retrieved July 28, 2023.
  40. ^ "perl.perl5.porters archive". perl.org. Archived from the original on May 1, 2011. Retrieved January 13, 2011.
  41. ^ a b "perlhist — the Perl history records". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on January 13, 2011. Retrieved January 21, 2011.
  42. ^ "Perl Definition, History, & Facts Britannica". www.britannica.com. Retrieved June 15, 2022.
  43. ^ "CPAN". CPAN. Archived from the original on October 3, 2019. Retrieved December 19, 2022.
  44. ^ a b "perl5004delta — what's new for perl5.004". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on February 27, 2011. Retrieved January 8, 2011.
  45. ^ Patwardhan, Nathan; Siever, Ellen; Spainhour, Stephen (2002). Perl in a Nutshell, Second Edition. O'Reilly Media. ISBN 978-0-596-00241-1.
  46. ^ "perl5005delta - what's new for perl5.005". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on February 3, 2011. Retrieved January 21, 2011.
  47. ^ "The Perl 5 language interpreter". metacpan.org. Retrieved July 3, 2023.
  48. ^ "perl56delta - what's new for perl v5.6.0". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on February 2, 2011. Retrieved January 21, 2011.
  49. ^ "perl56delta - what's new for perl v5.6.x". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on November 18, 2010. Retrieved January 21, 2011.
  50. ^ "Perl Definition, History, & Facts Britannica". www.britannica.com. Retrieved June 15, 2022.
  51. ^ Wall, Larry. "Apocalypse 1: The Ugly, the Bad, and the Good". Archived from the original on November 23, 2010. Retrieved January 8, 2011.
  52. ^ "perl58delta - what is new for perl v5.8.0". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on November 21, 2010. Retrieved January 21, 2011.
  53. ^ "A Plan for Pugs". O'Reilly Media. March 3, 2005. Archived from the original on September 8, 2012. Retrieved January 27, 2011.
  54. ^ Tang, Audrey (April 21, 2010). "Re: How to Implement Perl 6 in Ten Years". PerlMonks. Archived from the original on May 11, 2011. Retrieved January 3, 2011.
  55. ^ Geoff Broadwell (August 8, 2005), OSCON 4.4: Inside Ponie, the Bridge from Perl 5 to Perl 6, O'Reilly ONLamp Blog, archived from the original on March 14, 2012, retrieved June 27, 2016
  56. ^ Jesse Vincent (August 23, 2006), Ponie has been put out to pasture, The Perl Foundation, archived from the original on June 27, 2009, retrieved January 15, 2019
  57. ^ "perl5100delta - what is new for perl 5.10.0". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on December 21, 2010. Retrieved January 8, 2011.
  58. ^ "perlsyn - Perl syntax". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on August 26, 2013. Retrieved January 21, 2011.
  59. ^ "perl5120delta - what is new for perl v5.12.0". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on January 4, 2011. Retrieved January 8, 2011.
  60. ^ "perl5140delta - what is new for perl v5.14.0 - metacpan.org". metacpan.org. Archived from the original on July 25, 2018. Retrieved July 22, 2017.
  61. ^ a b "perl5160delta - what is new for perl v5.16.0". perldoc.perl.org. Retrieved May 21, 2012.
  62. ^ "perl5180delta - what is new for perl v5.18.0 - Perl programming language". Perl 5 version 18.0 documentation. metacpan.org. Archived from the original on October 29, 2013. Retrieved October 27, 2013.
  63. ^ "perl5200delta - what is new for perl v5.20.0 - Perl programming language". Perl 5 version 20.0 documentation. metacpan.org. Archived from the original on May 27, 2014. Retrieved May 27, 2014.
  64. ^ 르네상스의 이정표 - 현대프로그래밍 2012년 10월 27일 웨이백 머신에서 보관.Modernperlbooks.com .2013-07-17에 검색되었습니다.
  65. ^ 서문 (Modern Perl 2011-2012) Wayback Machine에서 2012년 9월 28일 보관.Modernperlbooks.com .2013-07-17에 검색되었습니다.
  66. ^ 크로매틱 오닉스 네온 프레스2011년 12월 22일 웨이백 머신에서 보관한 모던2011-2012 에디션.Onyxneon.com .2013-07-17에 검색되었습니다.
  67. ^ "Enlightened Perl". Enlightened Perl. Archived from the original on February 5, 2014. Retrieved September 28, 2012.
  68. ^ "YAPC::NA 2013 - June 3-5, Austin, Texas". Yapcna.org. June 4, 2013. Archived from the original on June 22, 2013. Retrieved April 11, 2014.
  69. ^ Little, Stevan (February 8, 2013). "What is Moe (a clarification) Stevan Little". Blogs.perl.org. Archived from the original on December 19, 2013. Retrieved April 11, 2014.
  70. ^ "p2 on potion". Perl11.org. February 7, 2004. Archived from the original on September 24, 2013. Retrieved April 11, 2014.
  71. ^ "goccy/gperl 路 GitHub". GitHub.com. Archived from the original on February 23, 2015. Retrieved April 11, 2014.
  72. ^ "rperl". RPerl.org. Archived from the original on October 18, 2014. Retrieved August 11, 2014.
  73. ^ "Perl 6". The Perl 6 Project. Archived from the original on February 21, 2011. Retrieved February 27, 2011.
  74. ^ Torkington, Nathan. "Transcription of Larry's talk". nntp.perl.org. Archived from the original on May 1, 2011. Retrieved January 25, 2011.
  75. ^ "Perl6 - The future of Perl". www.java-samples.com. Retrieved May 18, 2021.
  76. ^ "Official Perl 6 Documentation". The Perl 6 Project. Archived from the original on August 31, 2009. Retrieved January 25, 2011.
  77. ^ Kuhn, Bradley M. (January 2001). Considerations on Porting Perl to the Java Virtual Machine (MS thesis). University of Cincinnati. Archived from the original on March 21, 2008. Retrieved June 28, 2008.
  78. ^ Chromatic (2015). Modern Perl. Pragmatic Bookshelf. ISBN 978-1-68050-088-2.
  79. ^ "Feature comparison of Perl 6 compilers". Archived from the original on August 11, 2017. Retrieved March 28, 2012.
  80. ^ Worthington, Jonathan (July 15, 2013). "Rakudo JVM News: More tests, plus Thread and Promise prototypes". 6guts. Archived from the original on October 5, 2013. Retrieved July 24, 2013.
  81. ^ Worthington, Jonathan (May 31, 2013). "MoarVM: A virtual machine for NQP and Rakudo". 6guts. Archived from the original on July 9, 2013. Retrieved July 24, 2013.
  82. ^ "rename-lwn". Archived from the original on October 17, 2019. Retrieved November 10, 2019.
  83. ^ "rakudo/rakudo - GitHub". GitHub.com. Archived from the original on July 29, 2017. Retrieved September 21, 2013.
  84. ^ a b "Perl 7 announced at Perl Conference in the Cloud". perlfoundation.org. June 24, 2020. Archived from the original on June 26, 2020. Retrieved June 24, 2020.
  85. ^ a b "Announcing Perl 7". perl.com. June 24, 2020. Archived from the original on June 24, 2020. Retrieved June 24, 2020.
  86. ^ Nicholas Clark (May 9, 2021). "Steering Council meeting #019 2021-05-06". www.nntp.perl.org. Archived from the original on May 18, 2021. Retrieved May 17, 2021. The plan remains that there will be a Perl 7 bump, but not immediately after 5.34.0 is released. ... We don't think that we can deliver on [Perl 7] in 12 months.
  87. ^ Preparing for Perl 7d. leanpub.com. June 24, 2020. Archived from the original on June 25, 2020. Retrieved June 24, 2020.
  88. ^ Perl Steering Council. "What happened to Perl 7?". blogs.perl.org. Retrieved July 7, 2022.
  89. ^ Richardson, Marjorie. "Larry Wall, the Guru of Perl Linux Journal". www.linuxjournal.com. Linux Journal. Retrieved January 16, 2023.
  90. ^ Schwartz, Alan (December 1998). "Tutorial: Perl, a psychologically efficient reformatting language". Behavior Research Methods, Instruments, & Computers. 30 (4): 605–609. doi:10.3758/BF03209477. ISSN 0743-3808. S2CID 61028367.
  91. ^ Gilbert, James G. R. (March 2002). "How to become a programming tadpole". Nature Biotechnology. 20 (3): 221. doi:10.1038/nbt0302-221. ISSN 1087-0156. S2CID 38728402.
  92. ^ "The Fall Of Perl, The Web's Most Promising Language". FastCompany. February 13, 2014.
  93. ^ Wall, Larry. "perl - The Perl 5 language interpreter - Perldoc Browser". perldoc.perl.org. Retrieved June 24, 2021.
  94. ^ Wall, Larry (March 1, 1997). "Wherefore Art, Thou?". Linux Journal. Archived from the original on December 9, 2010. Retrieved March 13, 2011.
  95. ^ "perlfunc - Perl builtin functions". Perl 5 version 12.2 documentation. perldoc.perl.org. Archived from the original on January 6, 2011. Retrieved January 10, 2011.
  96. ^ Nagpal, D.P. (2010). Web Design Technology. India: S. Chand. p. 700. ISBN 978-8121927635.
  97. ^ "title unknown". May 10, 1997. Usenet: 199705101952.MAA00756@wall.org.[데드링크]
  98. ^ "Developer Update". Dr. Dobb's Developer Update. Miller-Freeman. 2. 1995.
  99. ^ a b Schwartz, Randal L. (1993). Learning Perl. O'Reilly & Associates. Bibcode:1993lepe.book.....S.
  100. ^ "perlintro". Perl 5 version 18.0 documentation. Perl 5 Porters and perldoc.perl.org. Archived from the original on January 9, 2011. Retrieved June 30, 2013.
  101. ^ "perlstyle". Perl 5 version 18.0 documentation. Perl 5 Porters and perldoc.perl.org. Archived from the original on June 26, 2013. Retrieved June 30, 2013.
  102. ^ a b "Perl 6 FAQ". Perl 6 Project. Archived from the original on July 1, 2013. Retrieved June 30, 2013.
  103. ^ a b chromatic (December 31, 2012). "The Implementation of Perl 5 versus Perl 6". Archived from the original on July 29, 2013. Retrieved June 30, 2013.
  104. ^ "Perl 6 Specification". The Perl 6 Project. Archived from the original on December 2, 2009. Retrieved January 27, 2011.
  105. ^ "Perl 6 Compilers". The Perl 6 Project. Archived from the original on December 2, 2009. Retrieved January 27, 2011.
  106. ^ Perl 5 인터프리터에 대한 설명은 Programming Perl, 3rd Ed., 18장에서 확인할 수 있습니다.실행 단계 및 컴파일 단계를 실행 시간 및 컴파일 시간과 주의 깊게 구분하는 467페이지를 참조하십시오.펄 "시간"과 "위상"은 종종 혼동됩니다.
  107. ^ "perlguts - Introduction to the Perl API - Perldoc Browser". perldoc.perl.org. Retrieved January 24, 2022.
  108. ^ Schwartz, Randal. "On Parsing Perl". Archived from the original on September 27, 2007. Retrieved January 3, 2007.
  109. ^ "The Perl Journal #19/9.26" (PDF). O'Reilly Media. Retrieved February 4, 2011.
  110. ^ Kegler, Jeffrey (October 7, 2011). "Perl and Parsing 11: Are all Perl programs parseable?". Retrieved October 25, 2022. ... we seem to be giving up absolutely nothing. Nobody has ever been able to show a practical downside
  111. ^ Kennedy, Adam (2006). "PPI—Parse, Analyze and Manipulate Perl (without perl)". CPAN. Archived from the original on September 3, 2013. Retrieved September 16, 2013.
  112. ^ "Rice's Theorem". The Perl Review. 4 (3): 23–29. Summer 2008. , 에서 온라인으로 이용 가능합니다.
  113. ^ Hietaniemi, Jarkko (1998). "Perl Ports (Binary Distributions)". CPAN.org. Archived from the original on April 18, 2006. Retrieved April 16, 2006.
  114. ^ "The MacPerl Pages". Prime Time Freeware. 1997. Archived from the original on January 18, 2006. Retrieved January 18, 2006.
  115. ^ "Perl Ports (Binary Distributions)". CPAN. Archived from the original on April 18, 2006. Retrieved January 27, 2011.
  116. ^ "ActivePerl is Perl for Windows, Mac, Linux, AIX, HP-UX & Solaris". ActiveState Software. Archived from the original on March 31, 2016. Retrieved January 9, 2011.
  117. ^ "Using PPM". ActiveState Software. Archived from the original on August 27, 2010. Retrieved January 9, 2011.
  118. ^ "Goodbye PPM, Hello State Tool". activestate.com. July 23, 2019. Archived from the original on July 28, 2020. Retrieved April 16, 2020.
  119. ^ 읽어주세요.txt
  120. ^ "Alioth: The Computer Language Benchmarks Game: Project Info". Alioth. Archived from the original on March 25, 2013. Retrieved January 13, 2011.
  121. ^ "Which programs are fastest?". Computer Language Benchmarks Game. Alioth. Archived from the original on May 17, 2013. Retrieved January 13, 2011.
  122. ^ Leroy, Jean-Louis (December 1, 2005). "A Timely Start". O'Reilly. Archived from the original on June 13, 2006. Retrieved May 22, 2006.
  123. ^ Beattie, Malcolm & Enache Adrian (2003). "B::Bytecode Perl compiler's bytecode backend". CPAN. Archived from the original on March 30, 2021. Retrieved September 16, 2013.
  124. ^ Schwartz, Randal; foy, brian; Phoenix, Tom (June 23, 2011). Learning Perl. "O'Reilly Media, Inc.". ISBN 978-1-4493-0358-7.
  125. ^ Stein, Lincoln; MacEachern, Doug (1999). Writing Apache Modules with Perl and C: The Apache API and Mod_perl. "O'Reilly Media, Inc.". ISBN 978-1-56592-567-0.
  126. ^ Bekman, Stas; Cholet, Eric (2003). Practical Mod_perl. "O'Reilly Media, Inc.". ISBN 978-0-596-00227-5.
  127. ^ Ingerson, Brian. "Inline - metacpan.org". CPAN. Archived from the original on June 13, 2013. Retrieved January 26, 2011.
  128. ^ Gilmore, W. J. (2010). Beginning PHP and MySQL: From Novice to Professional, Fourth Edition. Apress. p. 484. ISBN 978-1-4302-3114-1.
  129. ^ "IMDb Helpdesk: What software/hardware are you using to run the site?". Internet Movie Database. Archived from the original on March 9, 2017. Retrieved February 12, 2011.
  130. ^ DuckDuckGo는 하루에 450만건의 쿼리로 많은 양의 검색 쿼리를 처리합니다. https://duckduckgo.com/traffic.html 2012년 2월 15일 의회 도서관 웹 아카이브에 보관되어 있습니다.
  131. ^ DuckDuckGo는 Perl을 사용합니다 https://web.archive.org/web/20101231135106/http ://www.gabrielweinberg.com/blog/2009/03/duck-duck-go-architecture.html
  132. ^ "Perl FAQ". Archived from the original on August 6, 2019. Retrieved August 6, 2019. Perl is used quite extensively in Debian. Not only are some core functions written in Perl, but there are over 700 packages in unstable that have perl in their name (Mar 2004).
  133. ^ "Perl Books - Book: Data Munging with Perl". Perl.org. Archived from the original on September 7, 2011. Retrieved December 30, 2010.
  134. ^ Descartes, Alligator; Bunce, Tim (2000). Programming the Perl DBI : [database programming with Perl] (1 ed.). Beijing [u.a.]: O'Reilly. ISBN 978-1-56592-699-8.
  135. ^ "Perl Programming - Principles of Programming Languages". sites.google.com. Archived from the original on October 8, 2020. Retrieved May 18, 2021.
  136. ^ Bunce, Tim; Descartes, Alligator (February 4, 2000). Programming the Perl DBI: Database programming with Perl. "O'Reilly Media, Inc.". ISBN 978-1-4493-1536-8.
  137. ^ Bekman, Stas. "Efficient Work with Databases under mod_perl". Archived from the original on August 22, 2007. Retrieved September 1, 2007.
  138. ^ Pachev, Sasha (April 10, 2007). Understanding MySQL Internals: Discovering and Improving a Great Database. "O'Reilly Media, Inc.". ISBN 978-0-596-55280-0.
  139. ^ "Class::DBI - Simple Database Abstraction - metacpan.org". metacpan.org. Archived from the original on August 6, 2020. Retrieved April 8, 2020.
  140. ^ "Rose::DB::Object - Extensible, high performance object-relational mapper (ORM). - metacpan.org". metacpan.org. Archived from the original on August 6, 2020. Retrieved April 8, 2020.
  141. ^ "T sql querying developer reference". pdfpremiumfree.com. Retrieved May 18, 2021.
  142. ^ Wall, Larry (May 22, 2014). "Perl Culture (AKA the first State of the Onion)". Archived from the original on May 22, 2014. Retrieved May 22, 2014.
  143. ^ Larry Wall. "2nd State of the Onion". Archived from the original on July 17, 2012. Retrieved October 12, 2012. ('church' 검색)
  144. ^ Randal L. Schwartz (May 2, 1999). "Who is Just another Perl hacker?". Newsgroup: comp.lang.perl.misc. Usenet: m1hfpvh2jq.fsf@halfdome.holdit.com. Archived from the original on July 8, 2012. Retrieved December 5, 2014.
  145. ^ Schwartz, Randal (March 31, 2005). "Canonical JAPH". PerlMonks. Archived from the original on July 22, 2011. Retrieved May 16, 2011.
  146. ^ Greg Bacon (May 28, 1999). "Re: Incrementing a value in a slice". Newsgroup: comp.lang.perl.misc. Usenet: 7imnti$mjh$1@info2.uah.edu. Archived from the original on July 7, 2011. Retrieved July 12, 2011.
  147. ^ Back, Adam. "RSA in 5 lines of perl". Archived from the original on January 19, 2011. Retrieved January 10, 2011.
  148. ^ "Code Golf: What is Code Golf?". 29degrees. 2007. Archived from the original on January 13, 2012. Retrieved November 26, 2018.
  149. ^ Gallo, Felix (2003). "The Zeroth Obfuscated Perl Contest" (PDF). In Jon Orwant (ed.). Games, diversions, and Perl culture: best of the Perl journal. O'Reilly Media. Archived from the original (PDF) on November 22, 2009. Retrieved January 12, 2011.
  150. ^ "Perl Poetry". PerlMonks. Archived from the original on September 27, 2007. Retrieved January 27, 2011.

추가열람

  • Perl 6th Edition 학습 (2011), 오라일리Perl에 대한 초보자 수준의 소개입니다.
  • Beginning Perl 1st Edition (2012), Wrox.프로그래밍을 처음 해보거나 Perl을 처음 해보는 사람들을 위한 초보자 튜토리얼입니다.
  • 모던 펄 2011년 12월 22일 웨이백 머신 2nd Edition(2012), 오닉스 네온에서 보관됨.현대 펄 프로그래밍 기법에 대해 설명합니다.
  • 프로그래밍 Perl 4th Edition (2012), 오라일리최종 Perl 참조입니다.
  • 효과적인 펄 프로그래밍 2nd Edition (2010), Addison-Wesley.관용적 Perl을 작성하는 중급에서 고급 수준의 가이드입니다.
  • Perl Cookbook, ISBN 0-596-00313-7.실용적인 Perl 프로그래밍 예.
  • Dominus, Mark Jason (2005). Higher Order Perl. Morgan Kaufmann. ISBN 978-1-55860-701-9. Perl의 함수 프로그래밍 기법.

외부 링크