본문 바로가기

Script

(57)
24. Perl Debugging Dumper dumper 를 사용하면 레퍼런스, 배열, 해시 내부의 데이터를 볼 수 있다. use Data::Dumper qw(Dumper) ; print Dumper \ @an_array ; print Dumper \ %a_hash ; print Dumper $a_reference ; 변수의 이름도 출력되도록 아래와 같이 사용하는 것을 권장한다. print '@an_array: ' . Dumper \@an_array; 한번에 여러 정보를 아래와 같이 출력할 수도 있다. print Data::Dumper-> Dump([\@an_array, \ %a_hash , $ a_reference], [qw(an_array a_hash a_reference)]); CLI command line 을 사용해서 perl ..
23. Error Handling If statement 기본적으로 아래와 같이 return 값을 바로 검사하는 방법이 있다. if(open(DATA, $file)) { ... } else { die "Error: Couldn't open the file - $!"; } Perl 은$! 라는 이름의 variable 에 리턴값을 저장하기 때문에 이런 경우 간단히 아래와 같이 사용할 수 있다. open(DATA, $file) || die "Error: Couldn't open the file $!"; Unless statement 보통 아래와 같은 방식으로 아래와 같이 나타낼 수 있다. unless(chdir("/etc")) { die "Error: Can't change directory - $!"; } 조건이 앞에 나와서 조금 이상하긴 ..
22. Excel 설치전 셋팅 1. http://cygwin.com 에 들어가서 아래 것 다운로드 및 설치 Current Cygwin DLL version download: setup-x86_64.exe (64-bit installation) 2. 실행파일을 더블 클릭하여 설치 형태는 Install from Internet선택, 설치 폴더는 C:\cygwin64로 자동 지정, 모든 사용자를 위한 설치 선택, 지역 펙키지 폴더 선택: 내 문서로 선택. 인터넷 연결 선택: 직접적인 연결(Direct connection) 다운로드 사이트 선택: http://ftp.daum.net 패키지 선택: 초기값은 Default로 되어 있으나 필요한 것들을 Install로 전환함. 아래는 내가 Install 로 전환한 것들. - make:..
21. Directory Display all the files use strict; use warnings; # /temp 폴더에 속한 모든 파일들을 출력한다. my $dir = "/temp/*"; my @files = glob($dir); foreach(@files) { print $_ ."\n"; } # /temp 폴더에 속한 모든 C source 를 출력한다. $dir = "/temp/*.c" ; @files = glob ($ dir); foreach(@files) { print $_ ."\n"; } # /temp 폴더에 속한 모든 hidden 파일을 출력한다. $dir = "/temp/.*" ; @files = glob ($ dir); foreach(@files) { print $_ ."\n"; } # /temp 와 /..
20. System Write Command's Output In File my $command = ... ; open my $afile, ">", $logFileName or die "Couldn't open $logFileName: $!"; open my $fh, "$command |" or die "cannot run command: $!"; while ( my $row = ) { print $afile $row . "\n"; } close $fh ; close $afile ;
19. File Mode 파일의 모드는 아래와 같다. Entities Definition or w Creates, Writes, and Truncates >> or a Writes, Appends, and Creates + or w+ Reads, Writes, Creates, and Truncates +>> or a+ Reads, Writes, Appends, and Creates Open use strict; use warnings; open(DATA, "
18. Package 일종의 네임스페이스이다. 아래 두 가지 원칙을 지킨다. 펄 스크립트(.pl 파일)에는 package 선언을 두지 않는다. 펄 모듈(.pm 파일)에는 이름과 위치가 일치하는 하나의 package 선언만 둔다. 즉 Demo/StringUtils.pm 모듈은 반드시 package Demo::StringUtils로 시작한다. 아래와 같은 output 이 나온다. set PERL5LIB=C:\foo\bar\baz;%PERL5LIB% C:\foo\bar\baz\Demo\StringUtils.pm use strict; use warnings; package Demo::StringUtils; sub zombify { my $word = shift @_; $word =~ s/[aeiou]/r/g; return $word..
17. Module 클래스 같은 것들을 모듈로 만들어 놓고 재사용할 수 있다. 아래와 같이 정의한다. C:\foo\bar\baz\Demo\StringUtils.pm use strict; use warnings; sub zombify { my $word = shift @_ ; $word =~ s/[aeiou]/r/g; return $word ; } return 1; - 모듈이란 .pm 확장자를 가진 파일로 다른 펄 파일에 포함되는 파일을 말한다. - 모듈은 .pl 펄 스크립트와 완전히 똑같은 구문을 가진 텍스트 파일이다. - 모듈은 로드될 때 위에서부터 아래로 실행하기 때문에 마지막에 성공했음을 알리기 위해 true 를 반환해야 한다. - 펄 인터프리터가 모듈을 찾을 수 있도록 모듈을 포함하고 있는 디렉터리는 PER5LIB ..