NOWS/Perl

day 3.

emzei 2016. 1. 7. 17:08


Today is

- 스칼라 데이터






  • 스칼라 데이터
    • 가장 간단한 데이터 (문자열 혹은 숫자)
    • 값은 연산자로 실행 (예. 덧셈. 뺄셈)
    • 파일과 장치로 부터 read/write 가능

  • 숫자
    • 내부적으로 배정밀도 부동소수점수 값으로만 계산 (즉, 정수 값 없음)
    • 부동소수점 리터럴(상수) 허용

  • 문자열
    • "no built-in limits"
      • 최소 : 아무것도 없는 문자열
      • 최대 : 메모리를 다 채우는 문자열
    • 주의 
      • (``) 역인용부호를 사용하는 문자열 ==> 외부 명령어
        • 명령 실행 후 결과를 출력으로 돌려받음
        • 리터럴 문자열과 다름
      • ('') 단일인용부호 문자열
        • 문자열 포함안됨
        • 문자열의 시작과 끝을 구분할 수 있음
        • 문자열 내에 ' 사용 시 앞에 \(역슬래시)를 둠
        • 문자열 내에 \ 사용 시 앞에 \를 둠 (escape character)
        • \n 은 개행으로 인식되지않고 2개의 문자로서 인식됨
      • ("") 이중인용부호 문자열
        • C문자열과 유사하게 동작

  • 스칼라 연산자
    • 숫자 연산자
      • Exponentiation (누승) : ** 이용 (ex. 2^3 == 2**3)
      • modulus (나머지) : %
      • 비교연산자
        • <
        • <=
        • ==
        • >=
        • >
        • !=
    • 문자열 연산자
      • concat : "." (마침표) 연산자
        • ex. "ab"."cd" == "abcd"
      • repetition : "x" 
        • ex. "abc" x 3 == "abcabcabc"
      • 문자열 비교
        • 문자열 내에 있는 문자의 아스키값 비교
          • eq (equal)
          • ne (not equal)
          • lt (less than)
          • gt (greater than)
          • le (less equal)
          • ge (greater equal)
    • 숫자와 문자열 사이의 변환
      • "123.45abc"는 123.45 로 변환 될 수 있음
      • "abc"를 숫자 계산에서 사용하는 경우, 경고 없이 0으로 변환




  • 스칼라 변수
    • 변수명
      • $(문자)(문자/숫자/언더스코어)
      • 대소문자 구분

  • 스칼라 변수 연산자 및 함수
    • C와 유사함
      • $a=$a+5; 는 $a+=5; 와 동일
      • $a+=1; 는 $a++; 와 동일
    • chop()
      • 인수로 받은 값의 마지막 문자 제거
      • ex. 
        $x = "abcd"
        chop($x); #x : "abc"
      • 인수가 공백인 경우, 아무 연산 하지 않음 (경고 없음)
    • chomp()
      • 인수로 받은 값의 마지막 문자가 개행인 경우, 해당 개행 문자 제거
      • 그외의 문자는 제거하지 않음
      • ex.
        $x = "abcd\n"
        chomp($x); #x:"abcd"
        chomp($x); #x:"abcd" ,변화없음
    • 스칼라를 문자열로 삽입
      • 일반적인 경우
        ex.
        $x = "abcd"
        $y = "alphabet $x"; # y: "alphabet abcd"
        $z = "nothing $w"; # z: "nothing"
      • 변수삽입을 막으려면
        • 단일 인용부호('') 사용
        • 역슬래시(\)를 탈출문자로서 사용
      • 유사한 변수명일때 {}를 이용하여 한정할 수 있음
        • $ab="Hello"; $abcd="Bye"
        • $test=" $abcd World!" # Bye World!
          $test=" ${ab}cd World!" #Hellocd World!
      • 문자열 이스케이프 변수
        • \U : 전부 대문자로 전환
        • \u : 첫글자만 대문자로 전환
        • \L : 전부 소문자로 전환

  • 스칼라로서 <STDIN>
    • $a = <STDIN>; chomp($a);
    • 위와 동일한 것을 한 행으로 줄이면, chomp($a = <STDIN>);

  • 정의되지 않은 값
    • 변수가 할당 되기 전에는 undef
      • -w 옵션을 통해 경고 가능


'NOWS > Perl' 카테고리의 다른 글

day 6.  (0) 2016.02.02
day 5.  (0) 2016.02.01
day 4.  (0) 2016.01.27
day 2.  (0) 2016.01.06
day 1.  (0) 2016.01.05