== 작성중인 문서 == * PerlCommandLineCookBook == 참고 페이지 == * KLDP Wiki Formatting : [[minzkn]], HelpOnEditing [[TableOfContents]] = MEMO = == Perl Pattern Matching == === 요약 === * Pattern || . ||임의의 글자에 매치(\n을 매치하렴 /s사용)|| || (...) ||그룹을 묶는다|| || ^$ ||문장의 시작(^)과 끝($). cf) /m|| || {{{[...]}}} ||{{{[]}}}안에 열거된 글자중 한글자 cf)반대는 {{{[^]}}}|| || (..|..|..) |||로 구분된 패턴중 하나에 매치|| || (?#TEXT) || || (?:REGEXP) || || (?=REGEXP) || || (?!REGEXP) || || (?MODIFIER) || * Quantifier || + || || ? || || * || || {n,m} || || +? *? || || \w \W || Word(\w) == [0-9a-zA-Z_]. \W==[^\w] || || \s \S || || \d \D || || \A || || \b || || \G || || \n \r \f \t || * Back reference || \1 \2 .. \9 || * Special Var || $1..$9 || || $+ || || $& || || $' || || $` || * 패턴매칭 변경자 || /i ||대소문자 무시 || || /x ||공백을 무시하고 comment(#)을 허용한다 || || /g ||전역 매치,치환(가능한한 최대한 적용된다) || || /gc ||매치에 실패했을때 검색 지점을 초기화 하지 않는다|| || /s ||.에 \n이 매치되도록하고 $*는 무시한다 || || /m ||^와 $가 \n다음에 매치되도록 한다 || || /o ||패턴을 한번만 컴파일 || || /e ||s///오른쪽을 eval || || /ee ||s/// 오른쪽을 eval처리하고 결과를 한번더 eval || === 패턴매칭 변경자 === * /i : 대소문자를 구별하지 않고 매칭을 한다. use locale 가 설정되어 있으면 locale설정을 반영한다. 속도가 다소 느려진다는 단점이 있다 * /g * s///g 모든 매치에 대해 치환 작업을 수행. * m//g : 발생하는 모든 매치를 찾는다 단 겹치지 않는 매치만을 찾아내므로 겹치는 모든 매치를 찾아내려면 (?=)을 사용해야한다. {{{ @array = m/(\d\d\d)/g; @array = m/(?=(\d\d\d))/g; }}} == Perl Function == {{{ @sorted = sort @list; @sorted = sort { $a <=> $b } @list; # 숫자 정렬 @sorted = sort { $a cmp $b } @list; # 문자열 정렬 @sorted = sort { EXPR } @list; }}} * =$a<=>$b= : =<=>= 는 숫자비교연산자. 오름차순 정렬은 =$b<=>$a= * $a 와 $b는 전역패키지 변수로 할당된다. * 서브루틴을 이용한 정렬 {{{ @sorted = sort { compare() } @list; }}}