'PERL'에 해당되는 글 3건

  1. 2008.09.22 [펀글][Perl] 실행 옵션 by 당신은 천하보다 귀중합니다. av930
  2. 2008.09.22 [펀글][Perl] 환경변수 by 당신은 천하보다 귀중합니다. av930
  3. 2008.09.22 [펀글][Perl] 정규식 by 당신은 천하보다 귀중합니다. av930
시스템 변수


 전역스칼라변수
 $_ : default 연산자
 $O : 프로그램명
 $] : 버전 번호
 $/ : 입력행 분리기호
 $\ : 출력행 분리기호
 $, : 출력필드 분리기호
 $" : 배열항목 분리기호
 $# : 숫자 출력 포맷
 $@ : eval 오류 메시지
 $? : 시스템 오류 코드
 $! : 시스템 오류 메시지
 $. : 현재 행 번호
 $* : 다중 행 일치
 $[ : 첫번째 배열 첨자
 $; : 다차원 결합 배열 첨자 분리기호
 $: : 단어 끝 지정자
 $$ : Perl 프로세스 ID
 $ARGV : 현재 파일명
 $^A : 출력할 서식화된 행을 저장
 $^D : 내장 디버깅 값. Perl5의 인터프리터 수행시 -D 옵션을 줄 경우
 $^F : 파일을 시스템 파일로 다룰지 여부를 결정
 $&I : 연산자가 읽고 있는 파일을 편집한다.
 $^L : 출력시 form feed
 $^P : 디버깅 여부를 결정한다. 값이 0이면 디버깅을 종료한다.
 $^T : 프로그램 수행 시작 시각을 저장한다.
 $^W : 경고 메시지를 출력할 지 여부를 설정한다.
 $^X : Perl5 인터프리터를 수행시킬 때 사용한 명령행의 첫번째 단어를 출력한다.



 패턴 시스템 변수
 // : 하위 패턴 검사
 $& : 전체 패턴 검사
 $` : 일치한 문자열 이전의 문자열
 $' : 일치한 문자열 이후의 문자열
 $+ : 괄호로 둘러싼 마지막 하위 패턴
 파일 시스템 변수
 $~ : 기본 출력 포맷
 $= : 페이지 길이 지정
 $- : 현재 행과 현재 페이지의 마지막 행과의 차 (남은 행수)
 $^ : 페이지 헤더
 $| : 출력 버퍼의 지정 여부 (0이면 지정)
 $% : 현재 페이지 번호
 배열 시스템 변수
 @_ : 서브루틴에 절달되는 매개변수 리스트
 @ARGV : OS 명령행에서 전달되는 매개변수 리스트
 @F : 입력행을 단어 단위로 분리하여 저장
 @INC : require나 use 함수가 요구하는 파일을 검색할 디렉토리 리스트
 %INC : require 함수가 요구했던 파일 중에서 이미 발견된 파일 리스트
 %ENV : 결합배열과 관련하여 정의된 환경변수와 그 값
 %SIG : 한 프로세스가 다른 프로세스에게 보내는 신호
 내장 파일 변수
 STDIN : 표준 입력 (키보드)
 STDOUT : 표준 출력 (스크린)
 STDERR : 표준 에러 (스크린)
 ARGV : 파일연산자(<>)에 의해서 읽혀지는 파일의 버퍼
 DATA : 프로그램에서 사용할 데이타. 프로그램과 데이타 사이에는 _END_ 변수가 놓인다.
 _ : stat 함수나 파일 테스트 연산자가 수행된 마지막 파일

 시스템 변수의 alias
 $_ : $ARG  
 $^D : $DEBUGGING  
 $O : $PROGRAM_NAME  
 $^F : $SYSTEM_FD_MAX  
 $] : $PERL_VERSION  
 $^I : $INPLACE_EDIT  
 $/ : $INPUT_RECORD_SEPARATOR /$RS  
 $^L : $FORMAT_FORMFEED  
 $\ : $OUTPUT_RECORD_SEPARATOR / $ORS  
 $^P : $PERLDB  
 $, : $OUTPUT_FIELD_SEPARATOR / $OFS  
 $^T : $BASETIME  
 $" : $LIST_SEPARATOR  
 $^W : $WARNING  
 $# : $OFMT  
 $^X : $EXECUTABLE_NAME
 $@ : $EVAL_ERROR
 $& : $MATCH
 $& : $MATCH
 $? : $CHILD_ERROR
 $` : $PREMATCH
 $! : $OS_ERROR / $ERRNO
 $' : $POSTMATCH
 $. : $INPUT_LINE_NUMBER / $NR
 $+ : $LAST_PAREN_MATCH
 $* : $MULTILINE_MACHING
 $~ : $FORMAT_NAME $[
 $= : $FORMAT_LINES_PER_PAGE
 $; : $SUBSCRIPT_SEPARATOR / $SUBSEP
 $- : $FORMAT_LINES_LEFT
 $: : $FORMAT_LINE_BREAK_CHARACTERS
 $^ : $FORMAT_TOP_NAME
 $$ : $PROCESS_ID / $PID
 $| : $OUTPUT_AUTOFLUSH
 $^A : $ACCUMULATOR
 $% : $FORMAT_PAGE_NUMBER

Posted by 당신은 천하보다 귀중합니다. av930

댓글을 달아 주세요

시스템 변수


 전역스칼라변수
 $_ : default 연산자
 $O : 프로그램명
 $] : 버전 번호
 $/ : 입력행 분리기호
 $\ : 출력행 분리기호
 $, : 출력필드 분리기호
 $" : 배열항목 분리기호
 $# : 숫자 출력 포맷
 $@ : eval 오류 메시지
 $? : 시스템 오류 코드
 $! : 시스템 오류 메시지
 $. : 현재 행 번호
 $* : 다중 행 일치
 $[ : 첫번째 배열 첨자
 $; : 다차원 결합 배열 첨자 분리기호
 $: : 단어 끝 지정자
 $$ : Perl 프로세스 ID
 $ARGV : 현재 파일명
 $^A : 출력할 서식화된 행을 저장
 $^D : 내장 디버깅 값. Perl5의 인터프리터 수행시 -D 옵션을 줄 경우
 $^F : 파일을 시스템 파일로 다룰지 여부를 결정
 $&I : 연산자가 읽고 있는 파일을 편집한다.
 $^L : 출력시 form feed
 $^P : 디버깅 여부를 결정한다. 값이 0이면 디버깅을 종료한다.
 $^T : 프로그램 수행 시작 시각을 저장한다.
 $^W : 경고 메시지를 출력할 지 여부를 설정한다.
 $^X : Perl5 인터프리터를 수행시킬 때 사용한 명령행의 첫번째 단어를 출력한다.



 패턴 시스템 변수
 // : 하위 패턴 검사
 $& : 전체 패턴 검사
 $` : 일치한 문자열 이전의 문자열
 $' : 일치한 문자열 이후의 문자열
 $+ : 괄호로 둘러싼 마지막 하위 패턴
 파일 시스템 변수
 $~ : 기본 출력 포맷
 $= : 페이지 길이 지정
 $- : 현재 행과 현재 페이지의 마지막 행과의 차 (남은 행수)
 $^ : 페이지 헤더
 $| : 출력 버퍼의 지정 여부 (0이면 지정)
 $% : 현재 페이지 번호
 배열 시스템 변수
 @_ : 서브루틴에 절달되는 매개변수 리스트
 @ARGV : OS 명령행에서 전달되는 매개변수 리스트
 @F : 입력행을 단어 단위로 분리하여 저장
 @INC : require나 use 함수가 요구하는 파일을 검색할 디렉토리 리스트
 %INC : require 함수가 요구했던 파일 중에서 이미 발견된 파일 리스트
 %ENV : 결합배열과 관련하여 정의된 환경변수와 그 값
 %SIG : 한 프로세스가 다른 프로세스에게 보내는 신호
 내장 파일 변수
 STDIN : 표준 입력 (키보드)
 STDOUT : 표준 출력 (스크린)
 STDERR : 표준 에러 (스크린)
 ARGV : 파일연산자(<>)에 의해서 읽혀지는 파일의 버퍼
 DATA : 프로그램에서 사용할 데이타. 프로그램과 데이타 사이에는 _END_ 변수가 놓인다.
 _ : stat 함수나 파일 테스트 연산자가 수행된 마지막 파일

 시스템 변수의 alias
 $_ : $ARG  
 $^D : $DEBUGGING  
 $O : $PROGRAM_NAME  
 $^F : $SYSTEM_FD_MAX  
 $] : $PERL_VERSION  
 $^I : $INPLACE_EDIT  
 $/ : $INPUT_RECORD_SEPARATOR /$RS  
 $^L : $FORMAT_FORMFEED  
 $\ : $OUTPUT_RECORD_SEPARATOR / $ORS  
 $^P : $PERLDB  
 $, : $OUTPUT_FIELD_SEPARATOR / $OFS  
 $^T : $BASETIME  
 $" : $LIST_SEPARATOR  
 $^W : $WARNING  
 $# : $OFMT  
 $^X : $EXECUTABLE_NAME
 $@ : $EVAL_ERROR
 $& : $MATCH
 $& : $MATCH
 $? : $CHILD_ERROR
 $` : $PREMATCH
 $! : $OS_ERROR / $ERRNO
 $' : $POSTMATCH
 $. : $INPUT_LINE_NUMBER / $NR
 $+ : $LAST_PAREN_MATCH
 $* : $MULTILINE_MACHING
 $~ : $FORMAT_NAME $[
 $= : $FORMAT_LINES_PER_PAGE
 $; : $SUBSCRIPT_SEPARATOR / $SUBSEP
 $- : $FORMAT_LINES_LEFT
 $: : $FORMAT_LINE_BREAK_CHARACTERS
 $^ : $FORMAT_TOP_NAME
 $$ : $PROCESS_ID / $PID
 $| : $OUTPUT_AUTOFLUSH
 $^A : $ACCUMULATOR
 $% : $FORMAT_PAGE_NUMBER

Posted by 당신은 천하보다 귀중합니다. av930

댓글을 달아 주세요

[펀글][Perl] 정규식

Language 2008. 9. 22. 23:22
정규 표현(Regular expression)
 
 정규 표현(regular expression)은 일반화된 문자열을 설명하기 위한 규칙의 집합입니다.
 
 어떤 문자열이 정규 표현의 규칙을 따르고 있다면, 그 정규 표현은 그 문자열을 매치(match)한다고 합니다.
 
 예를 들면, 정규표현 'b.'는 문자열 'observe, body, abc'와는 매치를 이루고, 'b, Bell, Bob' 와는 매치하지 않습니다. 이 표현 'b.'는 '소문자 b가 문자열 내에 있어야 하며, 다른 문자가 뒤에 한 개 이상 있어야 하기(단,\n는 예외)' 때문입니다.
 
 펄에서는 많은 정규 표현들이 있는데, 그것들을 정리해 보았습니다.
 
 
 
 0. 정규표현 \삽입조건
 
 위에서 쓰였던 특수한 문자들 ^        $           |          [         ]       (        )        \        /         {        }         *        .         ?          +        등을 그 자체로 사용할 때는 그 앞에 \를 붙여 주세요.
 자체로 사용한다는것은 특수한문자들 자체를 찾기(매칭)위할때를 의미한다.
 ex) \^      \$      \|      \[      \]      \(      \)      \\      \/      \{      \}      \*      \.      \?      \+        
         
 1. 정규표현 어써션(Assertions)        
         
  기호  매치 영역          조건 매치함          매치안함      
     --------------------------------------------------------------            
 ^ X X로 시작하는 문자(열) ^fool  foolish  tomfoolery      
 \A X 위와 동일        
 X $ X로 끝나는 문자(열) fool$  April fool  foolish      
 X \Z 위와 동일        
 X \b  X로 끝나는 단어        
 \b  X X시작하는단어 be\bside  be side  beside      
  "the green grass of home"의 \bthe\b, \bgreen\b,\bgrass\b, \bof\b, \bhome\b그리고 \bthe\b와 \bhome\b도 포함됨에 유의하세요.        
 X \BX  X가 포함되나 X로 끝나지 않는단어        
 \BX X  X가 포함되나 X로하지 않는단어 be\Bside  beside  be side      
                             
 2. 정규표현 아톰(Atoms)                     
     
 기호  매치 영역  조건 매치함  매치안함  
     --------------------------------------------------------------        
 .  \n을 제외한 어떤 한문자 b.b  bob  bb, booob
 [] []내의 문자 중에 하나  ^[Bb]  Bob, bob  Rbob  
 () ()내에 정규표현이 매치하는 것  ^a(b.b)c$  abobc  abbc  
  매치된 순서대로 $1, $2,$3… 에 저장된다.    
  예제) $a = "a man is not a woman";   결과)
   ($x, $y, $z) = ($a =~ /(.*)(is not)(.*)/);  
   print "$a \n";    a man is not a woman
   print "$1 : $2 : $3 \n";    a man  : is not :  a woman
   print "$x : $y : $z \n";    a man  : is not :  a woman
     
   $1 = a man, $2 = is not, $3 = a woman으로 matching  
     
     
 3. 정규표현 아톰 퀀티파이어(Quantifiers)    
     
  기호  매치 영역   조건 매치함   매치안함  
     --------------------------------------------------------------        
 X * X가 없거나 하나 이상  ab*c  ac, abc  abb  
 X +  X가 하나 이상  ab+c  abc  ac  
 X ?  X가 없거나 하나  ab?c  ac, abc  abbc  
 X {n} X가 n개 만큼  ab{2}c  abbc  abbbc  
 X {n, } X가 적어도 n개 만큼  ab{2,}c abbc, abbbc  abc  
 X {nm}  X가 적어도 n개, 많아야 m개  ab{2,3}c  abbc, abbbc  abbbbc   
     
     
     
 4. 특수문자(Special Characters)    
     
 기호  매치 영역  조건 매치함  매치안함  
     --------------------------------------------------------------        
 \d    숫자[0~9] b\dd    b4d     bad  
   b\d+d b2345d baa43d  
 \D (숫자)가 아닌글자 [^0~9] b\Dd    bad     b4d  
 \n    새 라인(줄바꿈)            
 \r 캐리지 리턴            
 \t       탭    
 \f 폼 피드            
 \b 백스페이스    
 \e esc문자    
 \033 8진법    
 \x1b 16진법    
 \s 공백 문자, space, tab , [\r\t\n\f]    
 \S    (공백)이 아닌문자, [^\r\t\n\f]    
 \w   알파벳이나 숫자 ,[a-zA-Z0-9] a\wb    a2b     a^b  
 \W    (알파벳이나 숫자)가 아닌문자,[^a-zA-Z0-9] a\Wb    aa^b    aabb  
                                 
       
       
       
       
 5. 매 칭(Matching)      
 표현식      
 위의 표현들은 펄 프로그래밍시 매우 많이, 그리고 매우 유용하게 쓰입니다. 보통 매치 연산자는  '/    /'로 둘러싸인 정규표현으로 구성됩니다.      
       
 =~ 특수연산자 '=~'는 왼쪽값에 오른쪽값이 매치하는지에 따라 참과 거짓으로 평가 합니다.    
     예)   $filename = /usr/currentfile.dat.bin      
            $filename =~ /\.dat/ or die "Can't use. dat files. \n";      
  이 예의 뜻은 만약 $filename의 끝 문자열이 'dat'로 끝나지않는다면 'die ~ '해라 라는 뜻이 됩니다. 여기서 or 는 ||와 대체가능    
  위의 예제는 if !($filename =~/\.dat/)  die "Can't use dat files \n"과 같은 의미이다    
       
 !~ 연산자 '!~'는 '=~'의 반대개념입니다.

     예) $ENV{'PATH'} !~ /perl/ && warn "Not sure if perl is in your path...";  
      $ENV{'PATH'}에 /perl/이 매치되지 않는다면.... 의 뜻이 됩니다. 여기서 &&는 and와 대체가능

 패턴 시스템 변수  
   위의 ex)로 예를 들면
 $&  일치한 이전의 문자열 .dat
 $`  일치한 문자열 이전의 문자열  /usr/currentfile
 $'  일치한 문자열 이후의 문자열  .bin
 $+  괄호로 둘러싼 마지막 하위 패턴  

Posted by 당신은 천하보다 귀중합니다. av930

댓글을 달아 주세요