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 옵션을 통해 경고 가능