Perl 편집하기

누리위키, 온 누리의 백과사전

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

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

누리위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 누리위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)