Thursday, January 12, 2006
Perl : 특정 펄 모듈이 이미 설치되어 있는지 확인하는 배치파일
펄은 자신이 직접 모든 것을 만들어 쓰는 언어가 아니라, 남이 만든 코드를 가져와 조립하는 언어다.
CPAN 이라는 방대한 코드 창고가 있다. 하루에도 전세계에서 수십 개의 코드 즉 모듈이 올라온다. 펄 프로그래머는 이것을 다운로드 받아서 사용하기만 하면 된다. (물론 이것이 말처럼 그리 쉬운 일은 아니다.)
모듈들을 사용하기 위해서는, 모듈이 이미 자신의 하드디스크에 설치되어 있는지 아닌지 먼저 확인해야 한다. 당연한 얘기지만, 이미 설치되어 있다면 다운로드 받을 필요가 없다. 그런데 특정 모듈이 설치되어 있는지 아닌지 알기 위해서는, 모든 펄 모듈 디렉토리를 찾아봐야 할 것인데 귀찮은 작업이다.
다음의 배치 파일(Win2000/XP용)을 사용하면 쉽게 알 수가 있다. 배치 파일 이름 뒤에, 자신이 찾고 있는 모듈의 이름을 넣고 실행시키면 1초만에 결과가 나온다. 이렇게 굳이 배치 파일(batch file)까지 만들지 않아도 되지만 이렇게 해 놓으면 타이핑도 줄일 수 있고, 한눈에 알 수가 있다.
텍스트 파일로 만든 후 "findpm.bat" 등으로 적당한 이름을 주고, 패스(PATH)가 걸린 아무 디렉토리에나 넣어두면 된다.
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 특정 Perl 모듈이 이미 설치되어 있는지 아닌지 확인
::
:: findpm <모듈 이름>
::
:: ex) findpm CGI::Carp
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if "%1" == "" goto help
perl -M%1 -e 1.
echo.
if "%errorlevel%" == "0" (
echo ##############################################################################
echo. #
echo # %0: OK. '%1' module exist.
echo. #
echo ##############################################################################
) else (
echo %0: Module '%1' NOT found!
)
echo.
goto quit
:help
echo.
echo Check the particular Perl Module is installed or not.
echo.
echo.
echo Usage: %0 ^<module name^>
echo.
echo.
echo Example: %0 CGI::Carp
echo.
:quit
* 모듈이 이미 있을 때는 다음의 메시지:
D:\Z>findpm CGI::Carp
###################################
#
# findpm: OK. 'CGI::Carp' module exist.
#
###################################
* 모듈이 없을 때는 다음과 같은 어수선한 메시지:
D:\Z>findpm Foo
Can't locate Foo.pm in @INC (@INC contains: D:\WINDOWS_\Programs\perl_\site\lib
D:/Perl/lib D:/Perl/site/lib .).
BEGIN failed--compilation aborted.
findpm: Module 'Foo' NOT found!
참고: "[Perl/펄] 윈도용 ActivePerl 설치법"
CPAN 이라는 방대한 코드 창고가 있다. 하루에도 전세계에서 수십 개의 코드 즉 모듈이 올라온다. 펄 프로그래머는 이것을 다운로드 받아서 사용하기만 하면 된다. (물론 이것이 말처럼 그리 쉬운 일은 아니다.)
모듈들을 사용하기 위해서는, 모듈이 이미 자신의 하드디스크에 설치되어 있는지 아닌지 먼저 확인해야 한다. 당연한 얘기지만, 이미 설치되어 있다면 다운로드 받을 필요가 없다. 그런데 특정 모듈이 설치되어 있는지 아닌지 알기 위해서는, 모든 펄 모듈 디렉토리를 찾아봐야 할 것인데 귀찮은 작업이다.
다음의 배치 파일(Win2000/XP용)을 사용하면 쉽게 알 수가 있다. 배치 파일 이름 뒤에, 자신이 찾고 있는 모듈의 이름을 넣고 실행시키면 1초만에 결과가 나온다. 이렇게 굳이 배치 파일(batch file)까지 만들지 않아도 되지만 이렇게 해 놓으면 타이핑도 줄일 수 있고, 한눈에 알 수가 있다.
텍스트 파일로 만든 후 "findpm.bat" 등으로 적당한 이름을 주고, 패스(PATH)가 걸린 아무 디렉토리에나 넣어두면 된다.
특정 펄 모듈이 이미 설치되어 있는지 확인하는 BAT 파일
파일명: findpm.bat※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 특정 Perl 모듈이 이미 설치되어 있는지 아닌지 확인
::
:: findpm <모듈 이름>
::
:: ex) findpm CGI::Carp
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if "%1" == "" goto help
perl -M%1 -e 1.
echo.
if "%errorlevel%" == "0" (
echo ##############################################################################
echo. #
echo # %0: OK. '%1' module exist.
echo. #
echo ##############################################################################
) else (
echo %0: Module '%1' NOT found!
)
echo.
goto quit
:help
echo.
echo Check the particular Perl Module is installed or not.
echo.
echo.
echo Usage: %0 ^<module name^>
echo.
echo.
echo Example: %0 CGI::Carp
echo.
:quit
* 모듈이 이미 있을 때는 다음의 메시지:
D:\Z>findpm CGI::Carp
###################################
#
# findpm: OK. 'CGI::Carp' module exist.
#
###################################
* 모듈이 없을 때는 다음과 같은 어수선한 메시지:
D:\Z>findpm Foo
Can't locate Foo.pm in @INC (@INC contains: D:\WINDOWS_\Programs\perl_\site\lib
D:/Perl/lib D:/Perl/site/lib .).
BEGIN failed--compilation aborted.
findpm: Module 'Foo' NOT found!
참고: "[Perl/펄] 윈도용 ActivePerl 설치법"
tag: perl
Perl | 펄
<< Home