소개

펄은 인터프리터 언어다 보니 코드를 수정할 때마다 컴파일을 반복할 필요가 없고, 텍스트를 처리하는 기능이나 문자열의 일치 여부 검색 및 치환등을 매우 짧은 코드로 처리 가능하고 성능이 매우 뛰어나다.

또한 무료 쇼프트웨어라서 유닉스 시스템이나 맥OS에는 기본으로 탑재 되어 있다.

CPAN

CPAN 이라고 개발자라면 한번쯤을 들어봤을 법한 오픈소스 자료실이 있다. CPAN 의 올라와 있는 소프트웨어가 바로 펄로 제작된 것이다.

CPAN의 방대함은 펄 관련 문제 해결의 보공자 펄의 자랑거리이다.

https://www.cpan.org

단점

인터프리터 언어라는 태생적 한계에 의해 처리속도가 C의 처리 속도보다 조금 느리다. 그래서 퍼포먼스가 중요치 않은, 스크립팅 언어로 간단히 끝낼 작업에 많이 쓰인다고 한다. 하지만 요즘같은 성능이 뛰어난 컴퓨터에서는 별반 차이를 느끼지 못할 것이다.

또한 파이썬과는 라이벌 관계를 형성하고 있다고 한다.(정말?) 둘다 스크립트 언어에서 시작해서 지금까지 확장을 해 왔지만 문법적으로 매우 자유분방한 펄과는 달리, 들여쓰기까지도 문법의 일부로 제한하는 등의 덜 자유롭지만 정갈한 코드를 보여주는 파이썬은 선택하는 사람이 많고 상당히 대중화 되어있다.

펄의 강점

펄의 강점은 역시 간략한 코드인 것 같다.

간단한 예로 엑셀파일에 있는 데이터를 단순하게 plist 포맷 형식으로 바꿔보려고 한다.

위와 같은 엑셀파일에 데이터가 있다고 가정을 하자.

먼저 엑셀에서 test.csv 파일로 내보내기를 하면 다음과 같이 콤마로 구분되어 진다.

그럼 이제 make_plist.pl 파일을 생성하고 먼저 아래와 같이 작성한다.

    #!/usr/bin/perl
    use utf8;


	open(INFOFILE, ">", "result.plist") or die "result file open fail\n";

	@rects = <>;
	$num = scalar(@rects);

	  
	foreach( 0 .. $num -1){			
		$data = $rects[($_)];
		chomp($data);
		$data =~ s/\r//g;
		@dataArray = split(/,/, $data);
		
   		&setPlistData;
	}

	sub setPlistData{
		print INFOFILE "\t\t<dict>\n";
        print INFOFILE "\t\t\t<key>name</key>\n";
		print INFOFILE "\t\t\t<string>$dataArray[0]</string>\n";
		print INFOFILE "\t\t\t<key>title</key>\n";
		print INFOFILE "\t\t\t<string>$dataArray[1]</string>\n";
		print INFOFILE "\t\t</dict>\n";
		
	}

close INFOFILE;	 

그리고 바로 실행하면 끝!

./make_plist.pl test.csv 

내가 원하는 plist 파일이 생성된다.

결론

이 외에도 폴더의 파일명을 일괄적으로 변경하거나, 혹은 이미지 파일의 퀄리티를 낮춰 사이즈를 줄이거나 하는 등의 여러 작업은 단순하게 구현해 낼 수 잇다. 유행감에 요구에 따라 급변하는 한국의 특성상 특정 언어가 대세로 자리 잡히면 여타 언어는 씨가 말라버린다. 그래서 지금은 PHP에 완전히 자리를 내준 상태지만 하지만 아직도 배틀로얄(웹게임)이나 건담 배틀 류가 펄로 개발 되었다고 한다. 펄이 대세가 되는 그날까지.. 안녕!

sunyung's profile image

sunyung

2021-03-14 09:00

sunyung 님이 작성하신 글 더 보기