윈도우 환경에서 Perl사용, ActivePerl윈도우 환경에서 Perl사용, ActivePerl

Posted at 2010. 8. 27. 15:27 | Posted in 프로그래밍 언어/Java

ActivePerl 설치

ActivePerl(http://www.activestate.com/activeperl)을 받아서 설치한다.
위 사이트에 접속, 오른쪽에 Download ActivePerl을 클릭하여 자신의 플랫폼에 맞는 걸 받아 설치하면 된다.
콘솔창(cmd)에서 리눅스와 마찬가지로 "perl filename.pl" 하면 된다.

   

Perl용 라이브러리 사용

Perl 용 라이브러리를 가져다 써보자. 사실 이게 주 목적이었다.
윈도우 환경에서 Java로 구현된 프로그램에 Perl로 구현된 라이브러리를 이용하고 싶었다.
이용하려 한 것은 WordNet::Similiarty (http://wn-similarity.sourceforge.net/)
WordNet 2.1을 이용할 것이기 때문에 WordNet::Similarity 1.04를 사용한다.
다운받으면 이미 pm(perl module)파일로 떨어져 있지만, 그냥 끝내면 심심하니? 컴파일 시도.

먼저 make를 하려는데 GCC가 필요하단다. 설치하자. 콘솔에서 "ppm install MinGW"을 입력하면 된다.

다음엔 makefile을 만들자. "perl Makefile.PL"
이 때 의존성이 걸린 프로젝트가 있으면 알려준다.
WordNet::Similarity의 경우 Text::Similarity와 WordNet::QueryData이 필요하다 나온다. 컴파일 방법은 똑같으니 계속한다.
(WordNet::Similarity 사이트에서는 WordNet::QueryData 1.45를 쓰라고 함.)

그 다음 리눅스처럼 make & make install을 해야 하는데, 여기선 ActivePerl에서는 dmake가 있다.
dmake
dmake install
에러 없이 완료되면 blib란 폴더가 생기고, 그 안에 결과물이 들어가 있다. blib/lib 들어가보면 모듈 파일이 생성되어 있다.

   

Java에서 Perl 프로그램의 결과를 이용

Java에서 Perl의 모듈을 이용하는 멋들어진 방법이라면 따로 포스팅을 하겠지만,
단순히 Perl 프로그램이 콘솔에 찍는 결과만을 이용할 예정이라 단순한 방법을 택했다.
(멋들어진 방법을 쓰고 싶지만 배보다 배꼽인 상황이라)

Process p = Runtime.getRuntime().exec("perl " + url);
Scanner scanner = new Scanner(p.getInputStream());
while(scanner.hasNextLine())
{
    String line = scanner.nextLine();
}

남은건 String line가지고 파싱하는 것 뿐.

//