펄
| 패러다임 | 다중 패러다임 |
|---|---|
| 설계자 | 래리 월 |
| 최근 버전 | 5.18.0 |
| 미리보기 버전 | 5.18.0 |
| 자료형 체계 | 동적 타이핑 |
| 영향을 받은 언어 | AWK, BASIC-PLUS, C, C++, 리스프, 파스칼, sed, 유닉스 셸 |
| 영향을 준 언어 | 파이썬, PHP, 루비 |
| 운영 체제 | 크로스 플랫폼 |
| 라이선스 | GNU GPL, 아티스틱 라이선스 |
| 웹사이트 | http://www.perl.org/ |
펄(Perl)은 래리 월이 만든 인터프리터 방식의 프로그래밍 언어 혹은 그 인터프리터 소프트웨어를 가리킨다. 이 계얼의 언어에는 펄 5와 펄 6가 있다.[1]
펄 언어는 실용성을 모토로 하고 있어 C나 sed, AWK, 셸 스크립트 등 다른 프로그래밍 언어에서 뛰어난 기능을 많이 도입하여 사용하고 있다. 언어 자체의 자유도가 높고 표현력이 뛰어나 CGI나 웹프로그래밍, 시스템 관리, 그 밖의 간단한 작업을 하는 스크립트를 작성하는 데에 넓게 이용되고 있으며, 또한 생물정보학 쪽에서도 광범위하게 이용되고 있다.
인터프리터 펄은 자유 소프트웨어이며, 아티스틱 라이선스 또는 GPL으로 배포되고 있어 사용자는 둘 가운데 하나의 라이선스를 골라 쓸 수 있다. 유닉스를 비롯해 다양한 플랫폼에서 동작한다.
목차 |
역사 [편집]
초기 버전 [편집]
래리 월은 유니시스에서 프로그래머로 일하던 1987년 펄에 대한 작업을 시작하였으며, 1987년 12월 18일 버전 1.0을 comp.sources.misc 뉴스그룹에 공개하였다. 언어는 다음 여러 해에 걸쳐 빠르게 확장하였다. 1988년 펄 2가 출시되어 정규 표현식 엔진을 개선하였다. 펄 3는 1989년에 출시되어 이진 데이터 스트림 지원을 추가하였다.
1991년 펄 버전은 4로 이동되었으나 언어 상 큰 변화는 없었고 이 버전 들어 서적에 의해 잘 문서화되었다.
초기 펄 5 [편집]
월은 펄 4를 버리고 펄 5에 대한 작업을 시작했다. 펄 5의 초기 설계는 1995년 들어 계속되었다.
- 펄 5.000은 1994년 10월 17일 공개되었다.
- 펄 5.001은 1995년 3월 13일 공개되었다.
- 펄 5.002는 1996년 2월 29일 새로운 프로토타입 기능과 더불어 공개되었다.
- 펄 5.003은 보안 문제를 수정하여 1996년 6월 25일 공개되었다.
1995년 10월 26일 CPAN이 펄 모듈과 펄 스스로를 위한 저장소로 설립되었다. 2012년 4월 기준으로 9,500명 이상의 작성자가 작성한 24,500개의 모듈이 있다.
- 펄 5.004는 1997년 5월 15일 공개되었다.
- 펄 5.005가 1998년 7월 22일 공개되었다.
2000년~현재 [편집]
- 펄 5.6이 2000년 3월 22일 공개되었다.
- 펄 5.8이 2002년 7월 18일 공개되었다.
- 펄 5.10.0이 2007년 12월 18일 공개되었으며 이 판은 펄 1.0 공개 20 주년을 기념한다.
- 펄 5.12.0이 2010년 4월 12일 공개되었다.
- 펄 5.14가 2011년 5월 14일 공개되었다.
- 펄 5.16이 2012년 5월 20일 공개되었다.
명칭 [편집]
펄(Perl)은 당초 성서〈마태복음〉13장 46절에 나오는 “고가의 진주”를 따서 진주를 뜻하는 “pearl”이라고 이름이 붙여졌다. 래리 월은 긍정적인 의미를 가지는 짧은 이름을 선택하고 싶었고, 서너 글자로 이루어진 낱말을 사전에서 모두 찾아 보았지만 눈에 탁 띄는 것이 없었다고 한다. 그는 아내 글로리아의 이름을 따오는 것도 고려해 봤다고 한다.
펄이 정식 공개되기 앞서, 벌써 “pearl”이란 이름의 프로그래밍 언어가 있다는 걸 알게 돼서 철자를 살짝 바꾸어 “Perl”이라고 했다. 이처럼 “Perl”은 원래 약어가 아니지만, 나중에 이름에 몇 가지 의미가 붙여졌다. 정식 매뉴얼에서는 “Practical Extraction and Report Language”(실용적인 데이터 취득 및 리포트 작성 언어)란 의미라고 기술되어 있고, 읽기 어려운 것을 풍자하여 “Pathologically Eclectic Rubbish Lister”(병적 절충주의 잡동사니 출력장치)라고 하는 조금 짓궂은 의미도 붙이곤 한다. “Perl”이란 이름을 글로 쓸 때 약간의 주의가 필요하다. 펄 언어를 나타낼 때는 “Perl”처럼 첫 글자를 대문자로 해 고유 명사인 것을 확실히 한다. 이에 대해 현재 배포되고 있는 펄 언어의 유일한 인터프리터는 “perl”로 쓴다. 일반적으로 “perl만이 Perl을 해석할 수 있다”라는 말이 성립한다.
펄 6 [편집]
미래의 펄 5 [편집]
펄 5의 개발은 현재도 계속되고 있다. 펄 5.12.0은 2010년 4월 펄 6의 설계에 영향을 미친 몇 가지 새로운 기능들이 포함되어 출시되었다.
특징 [편집]
- 강력한 문자열 처리 기능 - 확장된 정규식을 지원한다.
- 연상 배열 (해시 배열)
- 자유도가 높은 문법 - “TMTOWTDI ... There's More Than One Way To Do It”(한 가지 방법만 있는 것이 아니다)라는 말에 나타나듯이, 같은 프로세스를 여러 방법으로 기술할 수 있다.
CPAN [편집]
펄은 모듈을 이용하여 특정 기능을 쉽게 사용할 수 있다. 예를 들어, 다른 프로그램이나 네트워크와의 통신, 각종 파일 형식의 처리, 수치 계산 등을 위한 수많은 모듈이 존재한다. CPAN 은 이러한 모듈을 체계적으로 관리하는 조직이며, 인터넷에서 서비스되고 있다. 펄이 동작하고 있는 컴퓨터가 인터넷에 접속되어 있으면, 반자동으로 CPAN과 접촉해 모듈을 가져와서 설치할 수 있다.
이용 가능 [편집]
펄은 GNU GPL과 아티스틱 라이선스라는 이중 라이선스 하에 배포된다. 배포판들은 대부분의 운영 체제에서 이용이 가능하다. 특히 유닉스와 유닉스 계열 운영 체제에서 널리 쓰이지만 현대의 대부분의 플랫폼에 포팅되고 있다.
윈도 [편집]
마이크로소프트 윈도의 사용자들은 Win32 버전의 펄 이진 배포판인 스트로베리 펄과 액티브펄 가운데 하나를 설치하여 사용하는 것이 일반적이다.
- 액티브펄은 액티브스테이트의 클로즈드 소스 배포판으로서 코어 펄 릴리즈를 추적하는 정규판을 포함한다.[2]
- 스트로베리 펄은 윈도용 오픈 소스 배포판이다.
- MinGW를 포함한 시그윈 에뮬레이션 계층에서 펄을 실행할 수도 있다. 시그윈은 윈도에서 유닉스 계열 환경을 제공하므로 펄과 CPAN을 시그윈 설치 프로그램의 미리 컴파일된 패키지로 사용 가능하다.
예제 코드 [편집]
이전 버전의 펄의 Hello World 프로그램은 다음과 같다:
print "Hello World!\n";
나중에 나온 버전에서는 다음과 같이 쓸 수 있다:
use 5.010;
say "Hello World!";
더 복잡한 프로그램을 위해서 use strict;와 use warnings;를 쓰는 것이 좋다:
use strict;
use warnings;
print "Hello World!\n";
최대 주어진 임계값까지 초 단위로 카운트 다운을 하는 더 복잡한 펄 프로그램의 예는 다음과 같다:
#!/usr/bin/perl
use strict;
use warnings;
my ( $remaining, $total );
$remaining = $total = shift(@ARGV);
STDOUT->autoflush(1);
while ( $remaining ) {
printf ( "남음: %s/%s \r", $remaining--, $total );
sleep 1;
}
print "\n";
참조 [편집]
- ↑ About Perl. perl.org. 2013년 4월 20일에 확인. “"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. Its existence has no significant impact on the continuing development of "Perl 5".”
- ↑ ActivePerl is Perl for Windows, Mac, Linux, AIX, HP-UX & Solaris. ActiveState Software. 2011년 1월 9일에 확인.
바깥 고리 [편집]
- 펄 홈페이지
- 펄 문서
- 한글 펄
- UHC를 위한 소스 코드 필터 (CPAN)
|
자유-오픈 소스 소프트웨어 |
||
|---|---|---|
| 일반 | ||
| 역사 | ||
| 운영 체제 | ||
| 개발 | ||
| 창 관리자 | ||
| 단체 | ||
| 라이선스 | ||
|
주요 프로그래밍 언어 |
|
|---|---|
| 산업용 | |
| 교육용 | |
| 역사적 의미가 있는 언어 |
|