펄을 공부하게 된 이유
-
테스트 코드를 확인하거나, 작성해야할 일이 있는데, 그 코드가 펄로 작성되어 있었다.
-
따라서 펄을 어느정도는 배워야지 이해할 수 있을 것 같았다. 따라서 책을 보면서 공부를 하려고 하였는데, 펄이라는 언어 자체가 번역서가 많이 존재하지 않았다.
-
따라서 어쩔 수 없이 영어 원서 그대로 읽고 있다. 다행히 알아듣기 힘든 영어를 사용하지는 않아서 아직까지는 이해하는데 큰 지장은 없는 것 같다.
펄을 공부하면서 느끼게 된 점
-
펄은 파이썬과 같은 스크립트 언어이지만, 개발자들이 생각하는 철학이 다른 것 같았다. 파이썬 같은 경우에는 유용하다고 생각이 되면 객체에 기능을 많이 추가하여서, 사용할 수 있는 기능이 매우 많다.
-
하지만 반대로 펄은 객체에게 최소한의 기능을 제공하고 가능하면 추가하지 않으려고 한다. 그리고 해당 기능이 어느정도 최적화가 될 때까지 릴리즈를 하지 않고 미룬다.
-
그리고 펄을 이용하여 주로 문자열 처리를 하는 것 같다.
-
펄은 특이하게도 스크립트 언어이지만, 실행하기전에 펄의 내부적인 컴파일러가 모든 코드를 실행한다. 따라서 문법 에러가 있더라도, 바로 잡아준다.
-
따라서 방대한 양의 펄 코드로, 아주 작은 양의 코드만 실행한다면 이것은 비효율적일 수 있다. 왜냐하면, 펄은 처음에 컴파일러가 전체 코드를 실행시켜서 최적화를 하기 때문이다.
간단한 PERL 문법
#!/usr/bin/perl
@lines = `perdoc -u -f atan2`;
foreach (@lines) {
s/\w<([^>]+)/\U$1/g;
print;
}
-
먼저 백틱(`) 문자로 감싸진 부분은 터미널에서 명령어를 입력하는 것과 같다.
-
따라서 두 번째 줄에 있는 코드는 터미널 창에서 아래와 같이 코드를 입력한 것과 같은 것이다.
$ perdoc -u -f atan2
-
그리고 해당 명령어의 결과는 배열에 저장된다.
-
그리고 밑에서 반복문에 의해서 배열의 결과가 처리되게 된다.
-
그리고 마지막 줄에서 출력이 이루어지게 된다. 다음의 과정을 요약하자면 하나의 명령어를 실행해서 출력된 결과를 가공하여 다시 출력하는 것이다.