March 2009 Archives

급조된 일요펄세미나에서 발표한 자료

새로운 Perl OOP로 개과천선하기

Perl OOP에 대해서 더 자세히 배우고 싶으면
http://www.dynamicacademy.net/perlclass/oo/index.html
에 있는 자료들 참고

Perl 기초가 부족하면
http://www.dynamicacademy.net/perlclass/begin/index.html
에 있는 자료들 참고

Parrot 1.0 출시

| | Comments (2) | TrackBacks (0)


오늘 드디어 Perl의 차기 버젼인 Perl 6(코드명 Rakudo)의 기반이 되는 새로운 VM, Parrot 1.0 ( 코드명 Haru Tatsu - Haru Tatsu는 "봄이 시작되다"라는 뜻의 한자 春立의 일본 발음이다.) 이 출시되었다.

참고: http://www.parrot.org/news/2009/Parrot-1.0.0

Parrot이 뭔지 궁금하면 http://aero.springnote.com/pages/145566 참고

그동안 실현가능성 없다느니 희대의 Vaporware니 하는 시기와 조롱 속에서도 꿋꿋이 개발을 진행하여 이렇게 정식 릴리즈를 눈앞에 보게 되니 감개가 무량하다.

그리고 Perl 6 도 6월달에 있을 OSCON 2009 에서 베타버젼을 발표하고 연말까지 프로덕션 환경에도 사용 가능하도록 안정화 시킨다고 하니 이제 Parrot, Perl 6는 현실성 없는 꿈이 아니라 현실로 다가온 것이다.

다음은 Parrot 1.0 release 노트에 현 Parrot Foundation 회장인 Allison Randal이 올려놓은 그룹 U2의 Walk On 가사의 일부인데 현재 Parrot의 상황과 아주 잘 들어 맞는다.
이제는 앵무새가 펄펄 날 일만 남았다 :)

You're packing a suitcase for a place none of us has been
당신은 우리가 모르는 곳으로 떠날 짐을 싸고 있습니다
A place that has to be believed to be seen
한 번 봤다고 믿던 그곳으로
You could have flown away
당신은 멀리 떠날 수도 있었죠
A singing bird in an open cage
열린 새장에서 노래하는
Who will only fly, only fly for freedom
오직 자유만을 위해 날아다니는 새처럼

Walk on, walk on
계속 걸어요, 계속 걸어요
What you got they can't deny it
당신이 가진 걸 그들은 부정할 수 없어요
Can't sell it or buy it
그리고 살 수도, 팔 수도 없어요
Walk on, walk on
계속 걸어요, 계속 걸어요


인터넷을 서핑하다 새로운 Perl 관련 책이 2009년 5월 15일 날 출간된다는 소식을 들었다.

책 제목은 바로

Automating System Administration with Perl: Tools to Make You More Efficient




이 책의 1판은 2000년 1월에 나왔었는데 이번 2판은 1판이 나온 지 9년 만에 개정되어 출간되며 내용도 1판이 430페이지인 반면 2판은 640페이지로 새로운 내용이 보강되어 출간된다고 한다.

Perl은 UNIX면 어디에나 기본으로 설치되어 있고 Windows등 다른 운영체제로도 안정적으로 가장 많이 포팅되어 있으며 강력한 문자열 처리기능, 원라이너(one-liner) 기능 등으로 인해 일반 프로그래머들 뿐만 아니라 시스템관리자들도 유닉스쉘과 함께 전통적으로 많이 사용해왔고 사용하고 있는 언어이다.

여기서 잠시 Perl one-liner 의 강력함을 잠시 느껴보자.

문제)
현 디렉토리의 모든 .txt 파일에서 모든 hello문자열을 hi로 바꾸어라 원본 파일은 .bak 확장자를 붙여서 백업

답)
perl -i.bak -pe 's/hello/hi/g' *.txt

이것은 잘 알려진 Perl one-liner로 일종의 snippet 처럼 그 내부 동작을 잘 이해하지 못하면서도 많이들 가져다 쓰는 것이다.

앗 그런데 문제가 생겼다. 원하던 작업이 아니어서 .bak 확장자가 붙어 백업된 파일들을 원본으로 되돌리고 싶다. 그런데 문제는 이 디렉토리 안에 .bak 이 붙은 디렉토리도 있고 원래 .bak의 확장자를 가진 파일도 있었다. 어떻게 하면 이런 복잡한 상황에서 작업 된 파일들만 대상으로 원상복구 작업을 할 수 있을까?

답)
perl -e 'map{ s/.bak//; -f and qx/mv $_.bak $_/ }  <*.bak>'

이것은 .bak확장자의 파일(디렉토리는 제외)을 찾아서 백업된 파일과 변경된 파일이 동시에 존재 할때만 백업본 파일을 원본 파일로 되돌리는 Perl one-liner 이다. 이것을 유닉스쉘이나 기타 스크립트언어들로 하려고 하면 이렇게 간단하게는 힘들 것이다.


요즘은 역사가 가장 오래된 Perl말고도 Python,Ruby같은 신진 스크립트 언어들이 있어 이런 언어들로 시스템관리 작업을 한다고 어쭙잖게 설레발 치는 사람들도 있고 Python으로 만든  func나 Ruby로 만든 Puppet같은 어떤 패키지 형태의 시스템관리 프로그램들도 나타나고 있는데 그런 것들은 Perl과 없는 게 없는 CPAN모듈의 조합으로 할 수 있는 수많은 작업에 비하면 그야말로 제한적인 것이다.

아무쪼록 새로운 2판이 좋은 내용으로 나와서 System Administration = Perl 이란 공식을 다시금 되새겨주기를 바란다.

PS: 본인은 책 장사 아님~
그동안 사용해오던 aero.dnip.net은 dnip.net 도메인 제공 서비스가 불안정하여 DNS가 자주 다운되는 관계로 이제 버리기로 했습니다.

이제 aero.dnip.net을 포함하는 모든 URL은 aero.dnip.net 을 aero.sarang.net 로 교체한 URL로 변경됩니다.

따라서 블로그 주소도

http://aero.dnip.net/blog    ->  http://aero.sarang.net/blog

으로 변경되었습니다.

About this Archive

This page is an archive of entries from March 2009 listed from newest to oldest.

February 2009 is the previous archive.

April 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by Movable Type 4.21-en