기대되는 Perl 신간 서적

인터넷을 서핑하다 새로운 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: 본인은 책 장사 아님~

0 TrackBacks

Listed below are links to blogs that reference this entry: 기대되는 Perl 신간 서적.

TrackBack URL for this entry: http://aero.sarang.net/cgi-bin/mt/mt-tb.cgi/122

4 Comments

오옷 무척 기대되네요!
척박한 perl 출판계에 단비같은 소식.
5월 15일 쯤 되면 환율 좀 내릴려나...

aero Author Profile Page said:

책 내용이 좋다면 돈이 안 아깝죠 :) 근데 목차만 봐도 내용이 알찰듯하네요.

gogisnim said:

저한테도 유용한 책일듯 싶네요.
사실, 원라이너로 스크립트 작성하기엔 아직 망설여집니다ㅋ

gogisnim said:

저한테도 유용한 책이네요.
사실, 원라이너로 처리하기엔 아직은 힘드네요..저는 ㅋ

Leave a comment

About this Entry

This page contains a single entry by aero published on March 17, 2009 4:22 PM.

도메인 변경 aero.dnip.net -> aero.sarang.net was the previous entry in this blog.

Parrot 1.0 출시 is the next entry in this blog.

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