본문 바로가기
프로그래밍

[PERL] 1장 기초 PERL 프로그래밍

by 스텔라게이트 2023. 1. 14.

1. PERL 이란 

 

Perl 언어는 C 언어와는 달리 컴파일러가 필요하지 않은 인터프리트(Interpret) 언어입니다.

이는 90년대 컴 퓨터 교육의 광풍이 불었을 때 많이 가르치던 GW-BASIC 과 같이 프로그램을 입력하면 바로 실행이 되는 형 태를 띄는데요.

Perl의 또 다른 장점은 운영체제(Operating System)에 독립적이라는 점이다.

즉, 윈도우즈에서 실 행한 Perl 프로그램은 특별한 예외(시스템 관련된 코드는 운영체제의 특성에 영향을 받는다)를 제외하고는 바 로 Linux에서 실행이 가능합니다.

PERL Linux WINDOW
PERL Linux WINDOW

Perl 언어의 문법은 C와 비슷합니다. 또한 변수를 선언할 때 변수의 타입 (예, 숫자, 문자열 등)을 설정하지 않고 바로 사용이 가능하기 때문에 초보자로 쉽게 프로그래밍을 할 수 있는 언어 입니다.

이에 반해서 C 프로그램의 경우는 변수를 사용하기 전에 해당 형식을 설정해야 하고, 설정이 되고 나면 변경하는 것이 불가능하다는 차이점이 있습니다.

반응형

또한 다른 형태의 변수 간 데이터 이동을 위해서 형변환에 대한 고려를 해야 하는 어려움이 있습니다.

마지막으로, C 프로그램 을 배울 때 가장 많은 사람이 포기하는 부분이 포인터(pointer)인데, 포인터를 이해하지 못하면 C 프로그램을 효율적으로 만들 수 없기에 가장 어려운 부분입니다.

C프로그램 포인터 개념
C프로그램 포인터 개념

이에 반해서 Perl은 포인터 없이도 다양한 문 자열 처리가 가능하도록 설계가 되어있는데요.

이와 같은 장점이 많은 사람들로 하여금 Perl을 사용하고, 생물정보학 에서도 초기에는 Perl 프로그램을 많이 사용하였는데요  Perl은 한 때 HTTP, HTML이 부상하면서 CGI를 위한 언어로 각광 받았습니다. 

 

Perl 코드는 사람에 따라서 일반적인 프로그램처럼 짤 수도 있지만, 간결하게 코드를 짤 수 있는 것으로도 유명합니다.

원래 프로그램 언어를 개발할 때 간결하게 프로그래밍을 할 수 있도록 설계를 하였고, 같은 프로그램도 다양한 형태로 표현될 수 있도록 고려를 하였습니다. 

반응형

Perl의 강점은  문자열 처리에 활용하는 정규 표현식(Regular Expression)인데요.

텍스트 파일을 읽어서 패턴분석을 하는 데에는 정규표현식을 이용해서 매우 간단하게 프로그램을 만들 수 있을 뿐 아니라, 매우 빠르게 그 처리를 진행할 수 있다. 그런데 이 표현식은 익숙해지지 않으면 해독이 안 되는 암호화된 문 자열처럼 보일 수 있습니다. 하여 여러 연구자, Tester들이 Perl을 애용하고 있습니다.

Perl 정규 표현식(Regular Expression)
Perl 정규 표현식(Regular Expression)

위의  복잡한 암호처럼 보이는 문자열을 Perl 정규표현식 (Regular Expression)이라고 합니다.

Perl의 가장 큰 강점은, 복잡한 문자열 패턴을 단 한줄의 정 규표현식으로 정리를 할 수 있다는 점인데요.

또한 이 정규표현식의 실행속도는 C로 복잡하게 프로그램을 짠 것과 대등한 속도를 낼 수 있습니다.

이 때문에 텍스트 자료 처리 등에 Perl 의 정규표현식이 자주 사용되곤 하였다.

생물정보학(Bioinformatics)의 경우는 전형적으로 text 파일을 많이 다루는 분야인데요. 반도체 Test 또한 동일합니다. 

대부분의 결과물은 텍스트 형태로 저장이 되며, 이 결과에서 원하는 정보를 추출할 일을 자주 수행하게 됩니다.

왜냐하면 대부분의 분석은 한 번에 끝나는 것이 아니고 수 십 단계를 거쳐서 진행이 되기 때문에, 결과로부터 원하는 정보를 빠르게 추출해서 다음 단계에서 분석하는 작업을 거쳐야 하기 때문입니다. 

그래서 그 결과로부터 원하는 정보를 빠르게 추출해서 다음 단계에서 분석하는 작업을 거치기에 Perl 언어를 잘 활용해야 빠르고 정확하게 원하는 분석결과를 만들어 낼 수 있습니다. 

 

2. Perl 프로그램 

Perl 프로그램
Perl 프로그램

위의 소개된 Perl 프로그램 Strawberry perl 과 Notepad++ 무료 프로그램입니다. 

Notepad + + 는 텍스트를 작성하기위한 무료 오픈 소스 응용 프로그램인데요.

옵션이 가득한 편집기 인 Notepad ++는 일반 텍스트뿐만 아니라 프로그래밍에도 자주 쓰이는 편집기 입니다. 

 

3. Perl 출력 프로그램 

어떤 언어든 제일 먼저 프로그래밍 연습하는 것이 바로 Hello 시리즈입니다.

지금 Perl에 대해서 공부를 하 고 있으므로, Hello, Perl!을 출력하는 프로그램을 작성해보도록 합시다! 

반응형

Perl 프로그램 작성 시 가장 첫줄은 #!/usr/bin/perl –w을 넣습니다.

가장 앞에 #은 주석이라는 의미이나, !과 함께 사용하면 UNIX/Linux에서 해당 프로그램 구동시

/usr/bin/perl 프로그램을 인터프리터 로서 쓰라는 것을 의미합니다.

-w는 경고 (warning)을 출력하는 옵션인데, 초기에 프로그래밍을 할 때 유용하게 사용할 수 있습니다.

특히, 변수(variable)의 오탈자로 인해서 오동작 하는 경우를 쉽게 찾아낼 수 있어 많이 사용합니다. 

 

#!/usr/local/bin/perl -w
# hello.pl

 print "Hello World\n";
 

이것이 프로그램의 전부.
print는 다음의 문자열, 숫자, 변수 등을 표준 출력기인 STDOUT에 출력합니다. 

  • 맨 첫줄의 #!/usr/local/bin/perl은 UN*X, Linux등에서 필요한 것으로 perl의 Full Path입니다.
  • \n : C++의 \n과 같은 역할로써 커서를 다음줄 앞으로 보내는 겁니다. (new line)
  • # : 이 문자 이후부터 끝까지는 perl로부터 무시됩니다. 주석문이죠. 주석문을 잘 써 놓으면 나중에 프로그램을 읽을 때 쉽게 이해가 되겠죠.
  • ; : 한 명령문은 언제나 ;(colon)으로 끝납니다. 이것이 빠지면 다음 명령라인에 error가 발생합니다.

hello.pl은 짐작하시다시피 평범한 ascii 파일(text파일)입니다. 따라서 dos의 edit나 Windows 계열의 notepad, UN*X의 vi 등과 같은 프로그램으로 편집하면 되겠죠.

이상으로 [PERL] 1장 기초 PERL 프로그래밍에 대한 글을 마치겠습니다. 

2장에서 좀 더 상세한 내용으로 찾아뵙겠습니다. 

반응형

댓글