목록개발자 이야기/Perl (52)
동글동글 라이프
http://www.perl.com/pub/a/2008/05/07/beginners-introduction-to-perl-510-part-2.html?page=2 perl에 대한 공부를 처음 시작할 때 www.perl.com 에 놀러갔다가 이 문서를 정리하는것이 좋겠다 라는 생각이 들어 번역을 시도했다. 번역하다보니 내 맘대로의 해석이 되는듯 하여 오역이 많을것이라 예상 중 ㅡ_ㅡ; = More fun with strings 문자열을 쉽고 재미있게 다루기 위해 perl은 3개의 함수 substr(), split(), and join() 를 제공한다. 만약 문자열의 한부분을 쉽게 바꾸려 한다면... substr 함수를 사용해라. substr함수는 2개 또는 3개의 매개변수를 사용되는데 첫번째 매개변수는 문..
1. More on Signal Handlers - 스킵 +_+ 쿠쿠쿠 2. An Upgrade Hello World 얼마전에 만든 Hello world 를 개선시키고 콜백함수에 대한 예제도 함께 만들어보자. 예제와 함께 위젯 패킹도 소개할 것이다. use Glib qw/TRUE FALSE/; use Gtk2 '-init'; # 새로운 콜백함수 이 함수는 데이터를 전달한다 # 모니터로 문자열을 출력해준다. sub callback { my ($button, $data) = @_; print "Hello again - $data was pressed\n"; } # 다른 콜백함수 sub delete_event { Gtk2->main_quit; return FALSE; } # 새로운 윈도우를 만든다. $wind..
지식IN에서 질문을 검색함과 동시에 답변까지 출력해주는 프로그램은 없을까? ...라는 생각이 들어 구현해 보았다. 인자값으로 한글을 받아온 뒤 URL로 검색할 수 있도록 인코딩을 하여 검색 후 10개의 리스트중 랜덤으로 하나의 질문을 골라 그 질문과 답을 출력을 해준다. 질문의 제목만 출력하도록 하였으며 답변은 모든 답변을 출력하도록 하였기 때문에 답변이 많으면 전체적으로 출력되는 내용도 길어진다. ( 이 부분이 조금 안좋은듯.. ) 보니깐 여기에 대한 좋은 모듈들이 또 많은 듯하지만... 머리의 한계로 인해... 어서어서 모듈의 어설픈 점에 대한 답글을 달아 주세요!!. 그런의미에서... Keedi님 항상 감사합니다^^; - naver.pm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1..
간만에 시간이 남아서 Mp3player을 만드는 작업을 하였다 Keedi님의 조언대로 File::Find를 넣어서 작성 CPAN의 SYSNOPSYS의 코드를 이해 못해 고생을 했다. use File::Find; find(\&wanted, @directories_to_search); sub wanted { ... } 부족한 느낌이 들어 적절한 예제가 있는 코드로 탐색을 시작했다. http://www.perlmonks.org/index.pl?node_id=217378 http://world.std.com/~swmcd/steven/perl/pm/find.html 영어의 압박이 있었지만 위의 두 예제를 보면 File::Find에 대한 적절한 예제를 확인 할 수 있다. 수정된 모듈 버전이 0.2로 올랐다는... ..
초안을 한번 잡아 보려고 한다. GTK2를 사용해서 이것저것 만들다보니 전체 틀이 나왔다. 각각의 객체를 접근하는 부분이 까다로워 고민이 들지만... 한시간만에 이렇게 만들었다는 것이 나조차도 믿기지는 않지만;; GTK2의 위대함을 엿볼 수 있는 단편적인 부분이기도 하다. 사실.. 슥삭슥삭 그려넣는... MFC와 비베가 훨신 더 편하기도... ㅡ.ㅠ 구간반복을 빼먹었...
Usage : pack Template, list unpack Template , EXPR pack 함수는 값들로 구성된 리스트를 받아서 이진구조로 변환시킨 뒤에 변환시킨 문자열을 반환하는 함수이다. 템플릿의 종류를 알아보기에 앞서 하나의 예제를 먼저 실행 하여보자. 1 2 3 4 use strict; my @list = (65..69); my $out = pack "C*",@_; print $out list에는 65부터 69까지의 숫자가 들어있다. 눈치를 채신분들은 알겠지만 저 숫자들은 아스키코드값의 10진수이고 A~E까지의 값을 차례대로 배열에 저장하였다. 이제 pack 함수를 살펴 보자. C는 unsigned 문자를 나타내고 있으며 아스키 코드값을 문자로 변환하여 반환해준다 그래서 출력되는 값은 "..
첫번째로 mp3list.pm 모듈을 만들어 보자. 이것은 해당 폴더 안에 있는 mp3파일을 모두 찾아주며 경로까지 붙여 저장 시켜주는 모듈이다. - mp3list.pm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package mp3list; use Exporter; use strict; use vars qw( @ISA @EXPORT_OK $VERSION ); use Cwd; @ISA = qw( Exporter ); @EXPORT_OK = qw(folder_name); $VERSION = '0.1'; sub folder_name { my $folder = shift; my @list; my $cwd = fastcwd()."/$folder"; ..
갓 프로그래밍에 입문한 친구 중에 한명이 MFC로 음악을 재생해주는 프로그램을 만드는 것을 보았다. 괜찮게 만들었길레 어떤점이 제일 어려웠냐고 물어봤더니 모르는 라이브러리를 사용하며 부딛치는 난관들을 극복하기가 어려웠다고 한다. 심심한데 perl로 한번 해볼까? 생각이 들어... 일단 음악파일을 재생해주는 모듈부터 검색을 하였다. cpan에서 막연하게 MP3만 검색을 했더니 찾고자 하는 모듈이 검색되지 않았는데 10분정도 붙잡고 있었더니 드디어 발견!! http://search.cpan.org/~kenwu/Win32-MediaPlayer-0.2/lib/Win32/MediaPlayer.pm Windows에서 음악파일을 재생 시켜주는 모듈을 발견! Author을 확인해보니 중국 사람이 만들었는데... 귀..
지금부터 GTK2-perl을 소개를 시작하겠다. 단순한 프로그램을 실행해보도록 하자. 이 프로그램은 종료버튼을 제외하고 아무런 기능이 없는 200 x 200 픽셀의 윈도우창 하나를 만든다. 1 2 3 4 5 6 7 8 9 10 use Gtk2; Gtk2->init; $window = Gtk2::Window->new('toplevel'); $window->show; Gtk2->main; 0; 위의 프로그램을 실행할 수 있을 것이다. 모든 프로그램은 당연하게 GTK2 모듈을 사용한다. Gtk2->init 모든 GTK 어플리케이션을 부른 뒤 init 메서드를 호출 할 것이다. 이 설정은 기본적인 비주얼과 색상등을 우리에게 제공한다. 이 메서드는 라이브러리를 사용하기 위해 기본적인 핸들을 초기화를 해주며 커맨드..
Chapter 1. Tutorial Availability 이 문서는 온라인에 있는 http://gtk2-perl.sourceforge.net/tutorial 를 참조하고 있다. 튜토리얼의 초기버전은 C interface 와 함께 작성되었다. 이 입문서는 SGML과 HTML로 GTK+ Release에 관한 소스 코드가 각각 분류되었다. 두개의 배포판중 당신에게 맞는 것 중 하나를 선택하여 쓰길 바란다. 이 튜토리얼의 패키지로 다운 받으려면 ftp://ftp.gtk.org/pub/gtk/tutorial 여기는 여러가지 형식의 튜토리얼이 포함되어 있다. 이 패키지는 오프라인에서나 프린트 출력을 하는데 유용하게 사용될 것이다. Chapter 2. Introduction GTK ( GIMP ToolKit) 은 ..