목록Perl (59)
동글동글 라이프
- Hash 사용되는 키(Key) 와 값(value)을 가지는 구조인 hash는 Perl에서 아래와 같이 구성된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 use strict; my %hash1 = ( a => 1, b => 1, c => 2 ); my %hash2 = ( 'a' , 1, 'b' , 1, 'c' , 2 ); print "Print hash1\n"; print "$_ = $hash1{$_} \n",for(keys %hash1); print "Print hash2\n"; print "$_ = $hash2{$_} \n",for(keys %hash2); Output: 1 2 3 4 5 6 7 8 Print hash1 c = 2 a = 1 b = 1 Print hash2 c = 2 ..
발단은 ... 웹 페이지에 아파치 기본인증이 걸려 있을 때, 코드상으로 어떻게 접근할 것인가? 에 대해서 이야기가 시작되었다. 내가 생각한 방법은 HTTP::Request 모듈을 사용하여 header에 베이직 인증을 포함시키는 방법이었다. my $request=HTTP::Request->new(GET=>'http://irc.perlog.org'); my $ua=LWP::UserAgent->new; $request->header( 'Authorization'=>'Basic id::pw', ); 그리 나쁘지는 않은 방법이었지만 뭔가 찝찝한 기분이 들어 커뮤니티에 던져 보았더니 역시 keedi님의 코드... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ..
작년 10월부터 블로그를 시작하였으니 어느덧 3달이나 지났다. 처음 블로그를 개설할때의 목표를 한번 다시 훓어봤지만... 전체적으로 perl에 대한 글을 쓰자 라는 전체 명제는 일단 맞아떨어 졌지만, 세부적인 계획들에 대한 포스팅은 수박 겉핧기 식으로 뛰엄뛰엄 기술하다보니 너무 뜬구름만 잡는것 같아 아쉬움이 컸다. perl과 관련된 보안적인 부분을 많이 포스팅하고 싶었지만... 처음에 Underground Perl 을 열혈 포스팅 중 회사분중 한분이 Exploit은 블로그에 포스팅하면 안될텐데... 라는 사실을 듣고 띠융;; 그 후부터는 주제를 바꾸어서 ... GTK+ 로 열심히 달리다... 배포문제에서 한번 Die하고 난뒤에 자연스레 GTK+가 손에서 멀어지게 되었다. 사실 GTK+는 언제든지 다시 잡..
정규 표현식 완전 이해와 실습에서는 perl 에 관련된 정규 표현식을 이렇게 소개하고 있다. " 프로그래밍 언어로서 정규 표현식의 대표 주자라고 할 수 있는 perl 언어에서의 정규표현식을 알아본다. Perl 에서는 정규 표현식과 관련된 연산자가 4개밖에 없지만 수많은 옵션과 특수 상황에 따라 다양한 방법으로 프로그램을 만들 수 있다. 물론, 그에 따른 문제가 생길 수 있는 경우도 많이 있다. Perl 은 개념을 프로그램으로 빠르게 구현 할 수 있기 때문에 경험이 부족한 초보자들에게는 자원의 보고 라고 할 수 있다. " 이 책에서는 perl 뿐만이 아니라 자바 및 닷넷 그 이외의 정규식에 대해서도 소개했지만, 처음은 perl을 사용한 정규식으로 글이 쓰였고, 대부분의 예제가 perl로 작성되었다.. 소개..
얼마전 무료문자를 사용하다 조금더 문자를 쉽게 보낼 수 없을까? 라는 생각이 들어 이리저리 궁리를 해봤다. perl에는 웹 처리에 관련된 많은 모듈들이 존재 하는데 cpan에서 HTTP를 검색하면 총 2204개의 모듈이 검색이되니... 조금이라도 쉽게 웹을 다루기 위한 CPAN Authors의 노력을 찾아볼 수 있었다. 대부분의 웹 처리 모듈들은 호환이 가능하도록 설정이 되어 있고 웹 자동화 모듈로 가장 유명한 WWW::Mechanize 모듈은 한번 맛보면 빠져나오지 못 할만큼 매력적이라 꼭 한번쯤은 테스트 해보길 권장한다. 어차피 문자를 보내주는 것이니, 인터넷 익스플로어 창을 열어서 자동으로 처리해주는 Win32::IEAutomation 모듈도 괜찮을듯한 생각도 들었다. JEEN님은 끝까지 Selen..
홈런랠리라는 플래시게임이 있다. 이 게임은 투수가 공을 던지면 그 공을 받아 치면 되는 게임으로써 http://www.mkgm.co.kr/bbs/board.php?bo_table=flash_game&wr_id=250&page=15 여기에 가면 직접 게임을 해 볼 수 있다. 게임을 하던중 생각했다. GuiTest를 사용하면 치트키처럼 다 홈런을 칠 수 있지 않을까? +_+ 그래서 일정한 간격으로 마우스를 좌로 우로 움직이며 클릭을 해주는 코드를 짠 뒤 테스트를 했다... 젠장.....
얼마전 cpan에서 테트리스게임을 구현한 코드를 발견하였다. yewenbin이란 중국사람이 만들었는데 멋지다. 소스 코드를 다운받아서 분석하던 중 ( perl은 소스코드를 바로 확인할 수 있어 좋은듯 ) Goo::Canvas 라는 모듈을 발견하고 이게 뭘까?? cpan에서 검색해 보았다. Goo::CanvasPerl interface to the GooCanvas Goo-Canvas-0.05 - 29 Mar 2008 - 叶文彬 오옷!! Gtk+ 를 사용하여 자동으로 그림을 그려주는 모듈인데 재밌는 기능이 많은듯 +_+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 my $canvas = Goo::Canvas->new(); $canvas->set_size_request(450, 280);..
perl로 연결리스트를 한번 구현해 보자. 연결리스트가 어떤것인지 궁금하다면... 위키디피아의 연결리스트를 보시기 바란다. http://ko.wikipedia.org/wiki/연결_리스트 그래도 잘 모르겠다는 분들을 위해서 간단히 정리해 보았다. 연결 리스트 - 연쇄적으로 연결된 원소로 이루어진 자료구조 데이터들이 쭉~~~ 연결되어있는 구조를 이야기한다. 지나가던 행인1 : 배열도 쭉~ 연결되어 있잖아? 죄송.. 설명이 시원찮아서...... 일단 밑의 그림을 보시라... 위의 그림으로 설명하자면... 데이터( data ) 뒤에 다음 데이터를 가르키는 주소( next )가 담겨져 있다. 다음 데이터를 추가하고 싶을때는 데이터와 다음주소값을 가르키는 값을 하나 더 생성한뒤 이 전의 주소와 연결만 시켜주면 계..
재귀(再歸)란? 원래 자리로 되돌아오거나 되돌아옴을 뜻하는 명사이다. 처음있던곳으로 계속 돌아온다는 뜻을 가진 이 단어는 프로그래밍에서 재귀용법이라는 알고리즘으로 프로그래머들을 때로는 탄성으로, 때로는 경악으로 몰고가는 알고리즘들 중 하나에 속한다. 재귀적 표현을 프로그래밍으로 그대로 옮겨놓은 것이 재귀함수(recursive function) 인데 이것은 자기자신을 계속적으로 호출하는 함수를 뜻하며 2가지 방법론이 제시된다. - 함수안에서 자기자신을 직접 호출하는 방법 - 두개의 함수가 상호 호출하는 방법 왠만하면 한큐에 끝낼 수 있는 자기자신을 직접 호출하는 방법이 더 좋다. 재귀용법은 일반적인 프로그래밍에서도 많이 응용이 되는데... 예를들어 지뢰찾기의 어떤 블럭을 클릭했을때 주변에 빈블럭이 있다면 ..
Perl로 배우는 알고리즘에서 좋은 내용을 발췌한다. 이진 탐색은 옛부터 알려진 탐색 방법중의 하나이며 어떠한 데이터를 우리가 원하는 테이블에서 검색을 할 때. 순차적으로 검색을 하는 것보다 더 효율적으로 반씩 끊어가면서 탐색을 하는 알고리즘을 이야기한다. 뜬구름 잡는 이야기 같아 죄송하지만... 실제코드부터 먼저 보기로 하자. 1 2 3 4 5 6 7 8 9 10 11 sub binary_search{ my ($array,$word) = @_; my ($low,$high) = (0, @$array -1); while( $low [$try] lt $word; $high = $try-1, next if $array->[$try] gt $word; return $try; # 값을 찾았을 때 해당 값 리턴 }..