Perl 편집하기
누리위키, 온 누리의 백과사전
편집을 되돌릴 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 | 당신의 편집 | ||
7번째 줄: | 7번째 줄: | ||
== 특성 == | == 특성 == | ||
− | 사용자가 신경써야 하는 별도의 컴파일 과정이 필요 없는 인터프리터 방식을 채택하고 있으나, 한줄 한줄씩 코드를 실행하는 | + | 사용자가 신경써야 하는 별도의 컴파일 과정이 필요 없는 인터프리터 방식을 채택하고 있으나, 한줄 한줄씩 코드를 실행하는 다른 스크립트 언어와는 달리 본격적인 실행 전에 전체 소스를 컴파일해 바이트코드를 만들어 낸 후, 한번에 실행한다는 독특한 면모가 있다. 코드 어딘가에 있는 문법 오류가 컴파일 과정에서 걸러지기 때문에 상대적으로 안전하고, 반복 실행시 다른 스크립트 언어에 비해 속도가 더 빠른 편이다. |
애초에 래리가 펄을 창시한 계기가 텍스트 처리이기 때문에, 정규표현식을 이용한 검색과 조작에 특화되어 있다. 텍스트를 처리하는 속도로만 따지면 네이티브로 컴파일한 C언어 프로그램이랑 맞짱 뜰 정도로 빠르다! 반면 바이너리 처리나 실시간 연산에 쓰기에는 적합하지 않다. 보통 산업계에는 텍스트 처리나 DB연결에 쓰이거나, 서로 다른 언어로 구현된 프로그램 상에서 데이터 교환을 중재하는 glue language로서 활약하고 있다. | 애초에 래리가 펄을 창시한 계기가 텍스트 처리이기 때문에, 정규표현식을 이용한 검색과 조작에 특화되어 있다. 텍스트를 처리하는 속도로만 따지면 네이티브로 컴파일한 C언어 프로그램이랑 맞짱 뜰 정도로 빠르다! 반면 바이너리 처리나 실시간 연산에 쓰기에는 적합하지 않다. 보통 산업계에는 텍스트 처리나 DB연결에 쓰이거나, 서로 다른 언어로 구현된 프로그램 상에서 데이터 교환을 중재하는 glue language로서 활약하고 있다. | ||
=== 문법 === | === 문법 === | ||
− | + | 명확성을 중시하는 프로그래밍 언어 주제에 '''문맥'''(context)이라는 개념이 있다. 정말이다! 같은 함수나 연산자라도 그게 스칼라(scalar) 문맥이냐 리스트(list) 문맥이냐 빈(void) 문맥이냐에 따라 의미하는 바가 다를 수 있다. 데이터를 숫자로 취급할지 문자로 취급할지도 문맥이란 개념으로 처리되며, 이를 위해 비교 연산자가 숫자문맥용으로 한 벌, 문자열 문맥으로 한 벌 마련되어 있다.<ref>예를 들어 '같음'을 의미하는 비교연산자는 숫자 버전으로 == 가 있고, 문자 버전으로 eq가 있다.</ref>그 외에도 자연언어적인 특성을 많이 가지고 있는데, 부분 평가 연산자나 표현식 변경자를 이용한 간단한 코드는 프로그래밍 언어가 일상언어처럼 자연스럽게 읽히는 신기방기한 현상을 만들어낸다. | |
* <nowiki>open my $fh, '>', 'filename'</nowiki> '''or''' die; | * <nowiki>open my $fh, '>', 'filename'</nowiki> '''or''' die; |