본문 바로가기

Programming/Perl16

perl underground 1-1 원문: http://www.milw0rm.com/papers/88 my $dotdot = "../../../../../../../../../../../../../../"; ## my $dotdot = '../' x 14; ## x 사용하기 if($ARGV[1]){ $user = $ARGV[1] } else { $user = "IEUser";} ## my $user = shift || 'IEUser'; ## shift 사용하기 my @systemroots = ("PUNIX","WINXP"); ## my @systemroots = qw(PUNIX WINXP); ## qw() 사용하기 foreach (@ARGV) { $host = $1 if ($_=~/-h((.*)\.(.*)\.(.*)\.(.*))/); $y.. 2009. 4. 30.
Package pp - PAR Packager Lexical Scoping Code Block { } 안에 있는 영역을 의미 각각의 서브루틴도 Lexical 영역에 해당된다. Package Package 는 변수의 영역을 나주지 않음 단순한 Namespace를 나눔. 변수의 종류 Lexical variable 변수의 범위 : 변수가 선언된 Lexical 영역의 내부 my 를 붙여서 기술한 변수 my $my_var; Global variable 변수의 범위 : 모든 Lexical 영역 기본적인 변수, our를 붙여서 기술한 변수 our $our_var; Local variable 변수의 범위 : 변수가 선언된 Lexical 영역의 내부와 호출된 Lexcial 영역 내부 local 을 붙여서 기술한 변수 local $lo.. 2009. 4. 23.
OOP&Libraray&Module Account.pm Account_out.pm bank.pl OOP 특징? 캡슐화(Encapsulation) - 묶는다. 데이터와 메쏘드(함수)를 하나의 단위로 묶은 것. (독립적으로 실행) 정보 은폐(Information Hiding) - 숨긴다. 외부에서 객체상태를 바꾸거나 허가되지 않은 동작으로부터 보호 추상화 or 개념화 (Abstraction) - 표현한다. 외부에서 사용해야 하는 기능은 공개, 제한해야 하는 기능은 은폐 다형성(Polymorphism) - 상황에 따라 달라진다. 같은 메써드에 대해 클래스에 따라 다른 행위를 하게 되는 특징. 인스턴스(Instance) - 객체가 실체화 되어 메모리에 구현됨 추상화 개념 또는 클래스 객체, 템플릿 들이 실제로 구현된 것. 메시지 전달(Massag.. 2009. 4. 23.
Perl 파일 다루기 rename("test.txt","old_test.txt");x binmode($fh); #바이너리 모드로 변경한다. 파일 테스트 연산자 파일의 상태를 조사하기 위한 연산자 $filesize = -s "test.txt"; Operator Return value -e 파일이 존재하면 참, 존재하지 않으면 거짓 -r 읽기 가능하면 참, 읽기 불가능이면 거짓 -w 쓰기 가능하면 참, 쓰기 불가능하면 거짓 -z 파일 크기가 0이면 참, 존재하지 않으면 거짓 -s 파일 크기 반환, 존재하지 않으면 거짓 -T 텍스트 파일이면 참, 바이너리 파일이면 거짓 -B 바이너리 파일이면 참, 텍스트 파일이면 거짓 파일 쓰기 Open 함수 사용 open my $fh, ">", "filename"; print $fh "data .. 2009. 4. 23.
do do 가 실행되는 순서를 보자. 1 2 3 4 5 6 7 8 9 10 print "1"x10 ."\n"; $x = do { print "2"x10 ."\n"; "4" x 10; }; print "3"x10 ."\n"; print $x; Output: 1 2 3 4 1111111111 2222222222 3333333333 4444444444 do는 그 값을 사용될 때 do가 읽혀지는 것이 아니라, 선언(?) 될 때, 읽혀지는 것을 확인할 수 있다. 그리고 do{} 안에서 마지막에 실행된 값이, do 앞의 변수에 저장됨을 알 수 있다. 2009. 4. 10.
Perl 제어문 제어문 2009/04/09 LABEL 사용 1 2 3 4 5 6 7 8 9 10 $dan = 10; LABEL1: foreach $f(1..$dan) { LABEL2: foreach(1..$dan){ last LABEL1 if $f==4; print "$f * $_ = ".$f*$_."\t\t"; print "\n" if ($_%3==0) ; } print "\n"."="x60 ."\n"; } Output: 1 2 3 4 5 6 7 8 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9 1 * 10 = 10 ==================================================.. 2009. 4. 9.