2014년 11월 20일 목요일
Perl에서 Config 파일 활용법 셋업
Perl Config Parsing 하기
GetOpt 모듈도 있으나, 보니까 config 파일의 형식이 지저분해 보인다.
이건 명령어 라인에서 받을 때 더 유용할 듯.
http://search.cpan.org/~mtadel/Getopt-FileConfig-1.0001/lib/Getopt/FileConfig.pm
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/20/getopt
http://perldoc.perl.org/Getopt/Long.html
대신에 Config 모듈을 써야겠다.
http://search.cpan.org/~sherzodr/Config-Simple-4.59/Simple.pm
※ hash of hash 등 복잡한 데이터 구조를 dump 출력하기 위한 코드 예시
http://www.perlmonks.org/?node_id=390153
90 서버에서 cpan 들어가서 Config::Simple을 설치하다가 에러 메시지 발생.
Can't exec "/usr/bin/make": No such file or directory at /usr/share/perl/5.14/CPAN/Distribution.pm line 2078.
Distribution.pm을 깔아야 하나?
검색해보니 답변이, 메시지를 잘 봐라, make가 없다잖냐. make를 설치해야지.
apt-get install build-essential
나는 앞에 sudo 붙여서 실행. 마지막에 무슨 메시지가 나왔는데 make 커맨드가 생기긴 했다.
근데 설치가 완료된 리눅스 시스템에 make가 없었을 수가 있나.. 암튼.
이제 되겠지. 다시 cpan 들어가서 install ~Config~ 명령어 실행.
YAML이 없어서 안 된다고 에러. 또 검색. YAML을 깔아, cpan YAML 해봐,
cpan 들어간 상태에서 하지 않고 곧장 cpan YAML. 된다.
이번엔 곧장 "cpan Config::Simple". 된다.
이번엔 hash 등 데이터 구조 출력을 위해 cpan Data::Dumper. 오케이.
※ 왜 cpan Data::Dumper랑 cpan Data::Dumer::Simple이 모듈을 설치하는 위치가
서로 다르지?
/usr/local/lib/perl/5.14.2/Data/Dumper.pm
/usr/local/share/perl/5.14.2/Data/Dumper/Simple.pm
현재, Perl이 설치된 path들:
/lustre/Tools/variant/vcftools_0.1.8a/perl/
/lustre/Tools/variant/tabix-0.2.5/perl/
/usr/lib64/perl5/vendor_perl/auto/
/usr/lib64/perl5/
/usr/share/perl5/
(이들 중에 어디에 설치될 건지는 어떻게 정해지지?)
How to add a file to @INC path in Perl
http://www.perlmonks.org/?node_id=923351
1. use lib를 써서 지정해주는 방법
use lib "/path";
use Porter; # 경로가 /path/Porter.pm 이어야 함.
use My::Porter; # 경로가 /path/My/Porter.pm 이어야 함.
2. -I 옵션 활용하기
perl -I /path
커맨드 라인에서 해주거나 (-I /path1 -I/path2 식으로 여럿 가능)
스크립트 내에서 #!/usr/bin/perl -I /path 해주면 됨.
※ 커맨드 라인에서 주는 것과 스크립트 내에서 주는 것은 처리과정상
런타임, 컴파일타임 기준에서 영향은 있는 듯.
3. FindBin 모듈 활용하기
use FindBin;
use lib $FindBin::Bin . '/lib'; # 이건 어떤 의도인지 모르겠다.
[11.20-21]
(계속)
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기