Microsoft Word - Beginning Perl for Bioinformatics - Perl 기본문법.doc

Similar documents
Tcl의 문법

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

OCW_C언어 기초

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint 프레젠테이션

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

Javascript.pages

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

슬라이드 1

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

제1절 조선시대 이전의 교육

PowerPoint Presentation

Microsoft PowerPoint - chap05-제어문.pptx

쉽게 풀어쓴 C 프로그래밍

Microsoft Word - Lab_080104A.docx

Microsoft PowerPoint - chap-05.pptx

슬라이드 1

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

Microsoft PowerPoint - chap08-1 [호환 모드]

PowerPoint Presentation

슬라이드 1

Microsoft PowerPoint - chap03-변수와데이터형.pptx

삼외구사( 三 畏 九 思 ) 1981년 12월 28일 마산 상덕법단 마산백양진도학생회 회장 김무성 외 29명이 서울 중앙총본부를 방문하였을 때 내려주신 곤수곡인 스승님의 법어 내용입니다. 과거 성인께서 말씀하시길 道 를 가지고 있는 사람과 어울려야만 道 를 배울 수 있

PowerPoint Presentation

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

PHP & ASP

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

15강 판소리계 소설 심청전 다음 글을 읽고 물음에 답하시오. [1106월 평가원] 1)심청이 수궁에 머물 적에 옥황상제의 명이니 거행이 오죽 하랴. 2) 사해 용왕이 다 각기 시녀를 보내어 아침저녁으로 문 안하고, 번갈아 당번을 서서 문안하고 호위하며, 금수능라 비

Microsoft PowerPoint - chap04-연산자.pptx

PowerPoint 프레젠테이션

1. AWK 프로그래밍언어 AWK는자료처리중심의프로그래밍언어이며텍스트처리와보고서생성을목적으로만들어졌다. AWK라는명칭은이언어를처음설계한 Alfred V. Aho, Peter J. Weinberger, Brian W. Kernighan 3명의이름을따서지은것이다. AWK는

<32B1B3BDC32E687770>

PDF

Microsoft PowerPoint - ch01.ppt

단위: 환경정책 형산강살리기 수중정화활동 지원 10,000,000원*90%<절감> 형산강살리기 환경정화 및 감시활동 5,000,000원*90%<절감> 9,000 4, 민간행사보조 9,000 10,000 1,000 자연보호기념식 및 백일장(사생,서예)대회 10

금오공대 컴퓨터공학전공 강의자료

Visual Basic 반복문

부벽루 이색 핵심정리+핵심문제.hwp

<C7CFB4C3B0F8BFF828C0FCC7CFC1F6B8F8C7D1C6EDC1F6292D31302E3128C3D6C1BE292D31302E31342E687770>

chap 5: Trees

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<C5F0B0E82D313132C8A328C0DBBEF7BFEB292E687770>

우리나라의 전통문화에는 무엇이 있는지 알아봅시다. 우리나라의 전통문화를 체험합시다. 우리나라의 전통문화를 소중히 여기는 마음을 가집시다. 5. 우리 옷 한복의 특징 자료 3 참고 남자와 여자가 입는 한복의 종류 가 달랐다는 것을 알려 준다. 85쪽 문제 8, 9 자료

상품 전단지

::: 해당사항이 없을 경우 무 표시하시기 바랍니다. 검토항목 검 토 여 부 ( 표시) 시 민 : 유 ( ) 무 시 민 참 여 고 려 사 항 이 해 당 사 자 : 유 ( ) 무 전 문 가 : 유 ( ) 무 옴 브 즈 만 : 유 ( ) 무 법 령 규 정 : 교통 환경 재

2

DBPIA-NURIMEDIA

화이련(華以戀) hwp

ÆòÈ�´©¸® 94È£ ³»Áö_ÃÖÁ¾

歯1##01.PDF

<5BC1F8C7E0C1DF2D31B1C75D2DBCF6C1A4BABB2E687770>

120229(00)(1~3).indd

01Report_210-4.hwp

<C3D1BCB15FC0CCC8C45FBFECB8AE5FB1B3C0B0C0C75FB9E6C7E D352D32315FC5E4292E687770>



교육 과 학기 술부 고 시 제 호 초 중등교육법 제23조 제2항에 의거하여 초 중등학교 교육과정을 다음과 같이 고시합니다. 2011년 8월 9일 교육과학기술부장관 1. 초 중등학교 교육과정 총론은 별책 1 과 같습니다. 2. 초등학교 교육과정은 별책

시험지 출제 양식

177

제주어 교육자료(중등)-작업.hwp

¸é¸ñ¼Ò½ÄÁö 63È£_³»Áö ÃÖÁ¾

<C3D6C1BE5FBBF5B1B9BEEEBBFDC8B0B0DCBFEFC8A C3D6C1BEBABB292E687770>

초등국어에서 관용표현 지도 방안 연구

6±Ç¸ñÂ÷

과 위 가 오는 경우에는 앞말 받침을 대표음으로 바꾼 [다가페]와 [흐귀 에]가 올바른 발음이 [안자서], [할튼], [업쓰므로], [절믐] 풀이 자음으로 끝나는 말인 앉- 과 핥-, 없-, 젊- 에 각각 모음으로 시작하는 형식형태소인 -아서, -은, -으므로, -음

민주장정-노동운동(분권).indd

untitled

<C0CEBCE2BABB2D33C2F7BCF6C1A420B1B9BFAAC3D1BCAD203130B1C72E687770>


E1-정답및풀이(1~24)ok

<C1B6BCB1B4EBBCBCBDC3B1E2342DC3D6C1BE2E687770>

< BDC3BAB8C1A4B1D4C6C75BC8A3BFDC D2E687770>

최우석.hwp

교사용지도서_쓰기.hwp

0429bodo.hwp

時 習 說 ) 5), 원호설( 元 昊 說 ) 6) 등이 있다. 7) 이 가운데 임제설에 동의하는바, 상세한 논의는 황패강의 논의로 미루나 그의 논의에 논거로서 빠져 있는 부분을 보강하여 임제설에 대한 변증( 辨 證 )을 덧붙이고자 한다. 우선, 다음의 인용문을 보도록

cls46-06(심우영).hwp

伐)이라고 하였는데, 라자(羅字)는 나자(那字)로 쓰기도 하고 야자(耶字)로 쓰기도 한다. 또 서벌(徐伐)이라고도 한다. 세속에서 경자(京字)를 새겨 서벌(徐伐)이라고 한다. 이 때문에 또 사라(斯羅)라고 하기도 하고, 또 사로(斯盧)라고 하기도 한다. 재위 기간은 6

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

쉽게 풀어쓴 C 프로그래밍


1

< C6EDC1FDBABB2E687770>

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - Lesson2.pptx

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - c2.ppt

Microsoft PowerPoint - Java7.pptx

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

쉽게 풀어쓴 C 프로그래밍

장: 200 세외수입 관: 210 경상적세외수입 항: 213 수수료수입 (단위:천원) [ 일반회계 ] 1,405,842 1,399,860 5,982 < 청소행정과 > 1,028,442 1,022,460 5,982 사업장종량제봉투 제작비용(30L) 79.43원*30,00

Transcription:

Beginning Perl for Bioinformatics - Perl 기본문법 1. Perl 의기본 Perl 프로그램은 text file입니다. 프로그램의각줄은문장 (statement) 으로되어있으며모두 ; 로끝납니다. print "Hello, World! n"; # 로시작되는부위는줄끝까지프로그램의실행과무관한코멘트 ( 주석 ) 가됩니다. print; # 이것은 print 에대한코멘트입니다. 대소문자를엄격히구별합니다. 일반적으로소문자만을쓰는것이좋습니다. 예를들면 $perl_variable 과 $Perl_variable 은다른변수입니다.

2. 변수 스칼라변수 $ 로시작하며수나문자열등의값을하나만넣을수있는변수입니다. 이름에알파벳, 밑줄, 숫자등을쓸수있습니다. 하이픈 ' - ' 은쓸수없으며물론이름이숫자로시작해서는안됩니다. 숫자변수, 문자변수등의구분은없습니다. 또한숫자는일반적으로부동소수점으로간주합니다. $my_money = 9900; $color = 'Cobalt'; print $my_money; # 또는 print $color; 스칼라변수 - 문자열문자열은 " 와 ' 따옴표를모두쓸수있습니다. 이중따옴표 " 안에서는변수나이스케이프문자를해석합니다. ' 따옴표는해석하지않습니다. $color = "red"; $my_color = "$color"; # $my_color 의값은 'red' print $my_color; print " n"; $my_color2 = '$color'; # $my_color 의값은 '$color' print $my_color2; 스칼라변수 - 이스케이프문자이중따옴표 (") 로둘러싸인문자열안의백슬래쉬 ' ' 로시작되는다음문자들은특별한것을의미합니다. 개행문자를표시하거나또는 @ 나 $ 등변수를의미하는글자를해석하지않도록하는역할을합니다. 몇가지중요한것은다음과같습니다. n # 개행문자 (Windows: CR+LF, UNIX: LF, Macintosh: CR) r # CR (carrage return) t # tab 027 # 8진수숫자 (0으로시작 ) xfa # 16진수숫자 (x 로시작 ) " # " $ # $ @ # @

print "Hello n"; # Hello 출력후개행 print " "Hello " n"; # "Hello" 출력후개행 배열변수명은 @ 로시작합니다. 전체는괄호 () 로싸여있으며각요소는쉼표로나뉘어있습니다. 리스트라고생각하시면됩니다. 스칼라변수에어느하나를담고자할때꺾쇠괄호 [] 를쓰고안에배열요소의번호를씁니다. 배열의요소는스칼라이므로이때변수명앞에는 $ 가붙습니다. 다른언어와마찬가지로배열요소의번호는 0부터시작합니다. @colors = ('Red', 'Blue', 'Yellow'); $my_color = $colors[0]; # 'Red' 가들어갑니다. print $my_color; print " n"; @garbage = (32, 'trach', 241, 'brush'); print $garbage[1]; 해시 (Hash) 변수명은 % 로시작합니다. Hash 는 associative array 라고도하므로연상배열이라고번역하기도합니다. 일반적인배열은배열을찾는첨자가저장된순서인숫자입니다만해시는스칼라변수가첨자가되는리스트입니다. 전체는괄호 () 로싸여있으며첨자 (key) 와요소 (value) 는차례대로쉼표로나뉘거나또는알아보기쉽도록 => 기호로나뉘어저장됩니다. 스칼라변수에어느하나를담고자할때중괄호 { 를씁니다. %colors = ('Apple', 'Red', 'Melon', 'Blue', 'Banana', 'Yellow'); %colors = ('Apple'=>'Red', 'Melon'=>'Blue', 'Banana'=>'Yellow'); print $colors{'apple'; print " n"; $my_color = $colors{'banana'; # 'Yellow' 가들어갑니다. print $my_color;

3. 연산자 대입연산자지금까지짐작한바와같이등호 = 가대입을의미합니다. 같다는것을의미하려면등호를두개나란히씁니다. $a = 5; # $a 에 5 가저장됩니다. print "TRUE" if ($a == 5); # $a 가 5 이면 TRUE 가출력됩니다. 수치변수의연산자 $c = $a + $b; # 덧셈 $c = $a - $b; # 뺄셈 $c = $a * $b; # 곱셈 $c = $a / $b; # 나눗셈 $c = $a ** $b; # 거듭제곱 $c = $a % $b; # 나머지 $c = $a ++; # $a 에 1 을더함 $c = $a --; # $a 에 1 을뺌 문자열연산자문자열함수에서설명합니다. 변수의대소비교 Perl 은문자열변수와수치변수를구분하지않으므로변수의대소비교는숫자인지문자열인지명시하여합니다. 관계 수치변수 문자열변수 ============================================ 같다 == eq 같지않다!= ne 왼쪽이크다 > gt 왼쪽이작다 < lt 왼쪽이같거나크다 >= ge 왼쪽이같거나작다 <= le ============================================ 조건연산자조건연산자는 가 OR, && 가 AND 를의미합니다.

$a = 1; $b = 2; ($a < $b) ($a == $b); # OR 이므로참이됩니다. ($a < $b) && ($a == $b); # AND 이므로참이됩니다. 참값과거짓값 true 나 false 등 BOOLEAN 변수는없으며 if 등조건판단문에서빈문자열 (""), 0 이들어있는문자열 ("0"), 수치 0 은거짓으로, 다른값은참으로판단합니다.. (dot 연산자 ) 문자열은 dot '.' 연산자로연결됩니다. 아래예에서 $long_string 과 $result 는같습니다. $long_string = 'This'. ' is'. ' quite a long'. ' string'; print $long_string; print" n"; $short_string1 = 'This is'; $short_string2 = ' quite a short'; $short_string3 = ' string'; print $short_string1.$short_string2.$short_string3; x ( 반복연산자 ) 문자열을여러개반복할때에는알파벳소문자 x 를씁니다. print '=' x 72; # - 를 72개나란히출력합니다... ( 범위연산자 ) @a = (0.. 4); # @a = (0, 1, 2, 3, 4); 와같습니다. print @a;

4. 흐름제어 if.. elsif.. else if ( 조건 ) { 조건에따른처리 ; 또는 if ( 조건 ) { 조건에따른처리 ; else { 다른경우의처리 ; 처리부분은문장이므로뒤에세미콜론 ';' 이있어야함에유의하세요. $a = "NG"; if ($a eq 'OK') { print 'Success'; else { print 'Failed'; # Failed 출력됩니다. if 를여러번쓸때에는 elsif 를씁니다. if ( 조건1) { 조건1 에따른처리 ; elsif ( 조건2) { 조건2 에따른처리 ; elsif ( 조건3) { 조건3 에따른처리 ;... else { 조건에모두안맞는경우의다른처리 ; else if 가아니라 elsif 임에유의하세요. $a = "WAIT"; if ($a eq 'OK') { print 'Success'; elsif ($a eq 'WAIT') { print 'Please wait'; # Please wait가출력됩니다. elsif ($a eq 'REPEAT') { print 'Please repeat'; else { print 'Failed'; 논리연산자를조건문으로쓸수있습니다. OR 조건은어느하나가참이면전체가참이므로조건연산자의앞부분이참이면뒷부분은처리하지않고앞부분이거짓이면뒷부분이참인가평가합니다. AND 조건은모두다참이어야전체가참이므로조건연산자의앞부분이거짓이면당연히전체가거짓이므로뒷부분을평가하지않습니다. 앞부분이참이어야뒷부분이평가됩니다. 이를이용하여 IF ~ THEN 문대신쓸수있습니다.

$a = 'FAIL'; $b = 'OK'; ($a eq 'OK') print 'FAIL'; # 'FAIL' 이출력됩니다. ($b eq 'OK') && print 'Success'; # 'Success' 가출력됩니다. unless if 의반대말입니다. unless 에는 elsif 는없습니다. unless ('TRUE' eq 'FALSE') { print "You are lying"; # 'You are lying' 이출력됩니다. for 보통지정회수를정하고쓰는문장입니다. 처음조건을실행하고끝내는조건이참인동안반복처리와처리를계속합니다. for ( 처음조건 ; 끝내는조건 ; 반복처리 ) { 처리 for ($a = 1; $a <= 10; $a++) { print "value = $a n"; # 1 부터 10까지출력됩니다. 리스트를넣을수도있습니다. 아래문장은위문장과같은의미입니다. @array = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); for (@array) { print "value of = $_ n"; # 1 부터 10까지출력됩니다. 편하게범위연산자를쓸수도있습니다. 이역시같은의미의문장입니다. for (1.. 10) { print "value = $_ n"; # 1 부터 10까지출력됩니다.

while 조건이참인동안 { 로둘러싸인블록을실행합니다. $a = 1; while ($a < 10) { print "value = $a n"; # 1 부터 10까지출력됩니다. $a ++; until 조건이참이될때까지 { 로둘러싸인블록을실행합니다. $a = 1; until ($a > 10) { print "value = $a n"; # 1 부터 10까지출력됩니다. $a ++; do if, unless, while, until 의구문의순서를바꿀수있습니다. $a = 1; do { print "value = $a n"; if ($a == 5); do { print "value = $a n"; unless ($a == 5); # 1 이출력됩니다. do { print "value = $a n"; $a ++; while ($a < 5); # 1, 2, 3, 4 가출력됩니다. do { print "value = $a n"; $a ++; until ($a > 5); # 5 가출력됩니다. do { ; 안에문장이하나뿐이면 do 자체는생략할수있습니다. $a = 1; print "value = $a n" if ($a == 5); print "value = $a n" unless ($a == 5); # 1이출력됩니다. print "value = $a n" while (++$a ++ < 5); # 2, 3, 4, 5가출력됩니다. print "value = $a n" until ($a ++ > 5);

5. 패턴일치 (Pattern Matching) 패턴 (pattern) 이란문자열내부의어떤특징이있어찾고자하는문자열입니다. 일반적으로두슬래쉬사이에나타냅니다. /abc/ 이것은패턴 abc 입니다. 패턴은특수문자를사용하여여러가지다양한조건으로찾을수있으며매우복잡해질수있습니다. 다음은그중일부입니다. abc 같은문자열 (abc) a* 앞의문자가 0 개이상 ("", a, aa,...) a+ 앞의문자가 1 개이상 (a, aa,...)? 0 또는 1 개의임의의문자 ("", a, b, c,...). 1 개의임의의문자 (a, b, c,...) ^abc abc 로시작함 (abcdef...) abc$ abc 로끝남 (... abc) [abc] 괄호안의문자중하나 (a, b, c) [abc]+ 괄호안의문자중하나이상 (ab, acbcaa, baaacc,...) [a-c] a-c 까지의문자중하나 (a, b, c) [a-za-z0-9] 모든알파벳과숫자중하나 [^abc] abc 가아닌문자 (d, e, f,...) ab bc ca ab, bc, bc 중하나 (ab, bc, ca) w 영숫자또는밑줄 ([a-za-z0-9_] 와같음 ) W w 가아닌것 d 영숫자 ([0-9] 와같음 ) D d 가아닌것 =~ ( 일치연산자 ) 패턴이문자열에있으면참, 그렇지않으면거짓을리턴합니다. $a = 'I love Jane'; $a =~ /love/; # 참 $a =~ /lovejane/; # 거짓 (love 와 you 사이에스페이스가없음 ) Perl 의변수명이맞는지확인해봅시다. 이와같이패턴에변수를쓸수도있습니다.

$var_name = "Jane"; $pattern = '^[A-Za-z_][A-Za-z0-9_]*$'; if ($var_name =~ /$pattern/) { print "This is correct name. n"; # This is correct name이출력됩니다. else { print "This is wrong name. n ; # 만약 var_name이 0Jane 이라면출력됩니다. 뒤에 i ( 대소문자무시 ), g ( 가능한모든패턴과일치 ) 등의옵션이붙기도합니다. $a = 'abc'; $a =~ /ABC/; # 거짓 $a =~ /ABC/i; # 참 ( 대소문자를무시 )!~ ( 불일치연산자 ) =~ 의반대입니다. s/.. /.. / ( 치환연산자 ) s/ 패턴 / 치환할문자열 / 형식으로문자열을치환합니다. $a = 'I love Jane.'; print $a; $a =~ s/jane/alice/; # Jane 이 Alice 로바뀝니다. print $a; tr/.. /.. / ( 변환연산자 ) tr/ 찾을문자열 / 치환할문자열 / 형식으로일련의문자열을다른문자열로치환합니다. $a = 'abcdef'; print $a; $a =~ tr/abc/def/; # a 는 d 로, b 는 e 로, c 는 f 로바꿈 print $a; split split (/ 패턴 /, 문자열 ) 문자열을패턴의경계단위로끊어서배열을리턴합니다. $data = 'one+two+three'; @order = split(/+/,$data); # @order = ('one', 'two', 'three');

6. 리스트 shift 리스트의첫요소를꺼냅니다. @list = (1, 2, 3, 4); $a = shift (@list); # $a 는 1, @list 는 (2, 3, 4) print @list; # 234가출력됩니다. unshift 리스트의머리에첫요소를추가하며각요소들은하나씩밀리게됩니다. @list = (1, 2, 3, 4); unshift (@list, 0); # @list 는 (0, 1, 2, 3, 4) print @list; # 01234가출력됩니다. push 리스트의마지막에요소를추가합니다. @list = (1, 2, 3, 4); push (@list, 5); # @list 는 (1, 2, 3, 4, 5); print @list; # 12345가출력됩니다. pop 리스트의마지막요소를꺼냅니다. @list = (1, 2, 3, 4); $a = pop (@list); # $a 는 4, @list 는 (1, 2, 3); print @list; # 123가출력됩니다. splice splice (list1, offset, length, list2) 리스트의일부분을삭제하거나치환합니다. list1 의처음에서 offset 만큼건너뛴후 length 의길이만큼 list2 로치환합니다. list2 가생략되면삭제를의미하며 length 가생략되면 offset 이후의전체를의미합니다.

sort 리스트를순서를크기대로놓습니다. @list = (2, 1, 3); @new_list = sort @list; # @new_list == (1, 2, 3); print @list; print " n"; # 123이출력됩니다. print @new_list; reverse 리스트의순서를뒤집습니다. @list = (2, 1, 3); @rev_list = reverse @list; # @rev_list == (3, 1, 2); print @list; print " n"; print @rev_list; # 312가출력됩니다.