위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

Perl
패러다임 다중 패러다임
설계자 래리 월
최근 버전 5.20.1
미리보기 버전 5.21.0
자료형 체계 동적 타이핑
영향을 받은 언어 AWK, BASIC-PLUS, C, C++, 리스프, 파스칼, sed, 유닉스 셸
영향을 준 언어 파이썬, PHP, 루비
운영 체제 크로스 플랫폼
라이선스 GNU GPL, 아티스틱 라이선스
사용중인 파일 확장자 .pl .perl
웹사이트 http://www.perl.org/

(Perl)은 래리 월이 만든 인터프리터 방식의 프로그래밍 언어 혹은 그 인터프리터 소프트웨어를 가리킨다. 펄은 고급 언어, 범용 언어, 인터프리터 언어, 동적 언어 범주에 속한다. 이 계열의 언어에는 펄 5와 펄 6가 있다.[1]

래리 월이 1987년 펄을 처음 만든 후, 펄은 많은 변화를 겪고, 펄 5의 최신 버전은 2013년 5월에 발표된 5.18이다. 펄 6은 2000년부터 펄을 다시 설계하면서 개발되기 시작했고, 펄 5와 독립적으로 개발되었고 서로 영향을 미쳤다.

펄 언어는 실용성을 모토로 하고 있어 Csed, 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일 공개되었다.
인터프리터가 거의 새로 작성되었고, 객체, 레퍼런스, 렉시컬(my) 변수, 모듈 등이 추가되었다.
  • 펄 5.001은 1995년 3월 13일 공개되었다.
  • 펄 5.002는 1996년 2월 29일 새로운 프로토타입 기능과 더불어 공개되었다.
  • 펄 5.003은 보안 문제를 수정하여 1996년 6월 25일 공개되었다.

1995년 10월 26일, 펄과 펄 모듈들을 저장 및 관리하는 저장소 CPAN이 개설되었다. 2013년 11월 기준으로, 11,000여명이 개발한 12만여개의 모듈이 있다.

  • 펄 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";

참조[편집]

  1. 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".”
  2. ActivePerl is Perl for Windows, Mac, Linux, AIX, HP-UX & Solaris. ActiveState Software. 2011년 1월 9일에 확인.

바깥 고리[편집]