본문 바로가기

MyDevLife

(257)
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 ..
16. Regular Expression 2 - 일치 문자열 일치와 관련해 자주 사용되는 표현을 정리해 보자. ~= Binder 보통 Perl 에서 패턴은 $_ 전역 변수에 들어 있는 데이터와의 비교를 말하는데 ~= 바인딩 연산자를 사용하면 $_ 변수 대신 왼쪽에 있는 문자열에 대해서 오른쪽의 패턴을 일치시킨다. use strict; use warnings; my $something = "I dream of betty rubble."; if($something =~ /\brub/ ) { print "Aye"; } Match m/ 패턴/ 처럼 사용하면 true, false 를 리턴한다. Character 보통 char (숫자, 문자) 일치 관련해서 사용되는 단축 문자열이다. my $string = "Hello world"; if($string =~ m/(\w..
15. Regular Expression 1 - 기본 http://gypark.pe.kr/wiki/Perl/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D 정규 표현식 / / 사이에 문자열을 넣으면 정규표현식이 된다. http://regexr.com/ 에서 쉽게 정규 표현식에 대한 테스트를 수행할 수 있다. 메타문자 정규 표현식(정규식, regular expression)에서 메타 문자(meta character)들은 특별한 뜻이 담기어 문자열 양식을 나타내는 데에 쓰인다. 앞으로 살펴볼 수량자, 앵커, 역참조 모두 메타문자중 일부이며 각 메타문자는 우선순위가 있다. 문자 집합과 축약 문자 집합 축약표현 [0-9] 모든 숫자 \d [A-Za-z0-9] 단어를 구성하는 문자 \w [\f\t\m\r] 모든 공백 문자 \s [\..
14. Class 펄은 원래 객체 지향 언어가 아니였다. 펄의 객체 지향 기능은 중간에 이식된 것이며 아래와 같은 특징이 있다. - 객체는 단순한 참조이다. 다만 어떤 클래스에 속하는지 알 수 있다는 점이 일반 참조와 구별되는 점이다. - bless 를 사용하면 참조하고 있는 객체가 어떤 클래스에 속할지 정할 수 있다. - ref 를 사용하면 참조하고 있는 것이 어떤 클래스인지 알아낼 수 있다. - 객체의 메서드는 $obj->method(); 식으로 호출한다. - 클래스 메서드는 Package::Name->method() 식이다. - 클래스는 메서드를 포함하게 된 패키지이다. Constructor and destrutor - 생성자의 첫번째 인자는 객체가 아니고 클래스 이름이다. - 생성자의 두번째 인자는 객체 그 자체가..