영어에서 단수, 복수를 구분하는 것 처럼 스칼라는 단수에 해당한다.
즉 일반적으로 펄에서 하나의 값을 갖는 것은 스칼라이며 스칼라 값과 스칼라 변수가 있다.
스칼라 변수에는 숫자, 문자, 참조, undef 의 값들을 대입할 수 있다.
Boolean 타입은 따로 없고 조건문에 0, "", "0", undef 인 경우 false 라고 인식한다.
my $num = 4040.5 ;
print $num ;
my $string1 = "hello";
my $string2 = "world";
print $string1 .' '. $string2 ;
|
숫자
펄에서는 정수값과 실수값을 구분하지 않는다.
정수값도 내부적으로 부동 소수 값으로 계산한다.
0
2001
-40
255
4345345677567
4_345_345_677_567
마지막의 경우에는 밑줄을 사용했는데 정수를 가독성있게 표현할 수 있다.
|
펄도 2진수, 8진수, 16진수를 지원한다.
2진수는 0b 로 시작하고 8진수는 0 으로 16진수는 0x 로 시작한다.
037 ( 8진수 )
0xff ( 16진수 )
0b11110000 ( 2진수 )
|
숫자 연산자
더하기, 곱하기, 빼기, 나누기, 제곱 ( ** ), 나머지 연산자를 제공한다.
제곱만 좀 다르다.
문자열
펄에서 문자열의 길이에 대한 제약은 없다.
그것은 펄이 따르는 '내재된 한계는 없다' 는 원칙과 일치한다.
문자열도 숫자처럼 상수로 표현할 수 있다.
문자열 상수 표현은 펄 프로그램에서 문자열을 나타내는 방식 중 하나이다.
문자열 상수는 작은따옴표 문자열 상수와 큰따옴표 문자열 상수의 두 가지 방식으로 표현할 수 있다.
작은 따옴표
|
큰 따옴표
|
작은 따옴표 문자열의 경우에는 역슬러시를 제외하고
나머지는 문자 그대로 쓰여진다.
역슬러시도 \' 만 의미가 있고 나머지는 의미가 없다.
|
큰따옴표 문자열 상수는 이전 C 언어와 비슷한데
이를 '역슬래시 회피' 라고 한다. ( \n, \t )
그리고 큰 따옴표 보간이 일어난다. ( 문자열 대체 )
|
문자열 연산자
- 문자의 결합은. 으로 한다.
- x 는 문자열 반복 연산자이다.
print "Sam" x 3; # SamSamSam
|
숫자와 문자간의 자동 변환
대부분의 경우 펄은 필요할 때마다 자동으로 숫자와 문자 간의 변환을 수행한다.
필요한 것이 숫자인지 문자인지는 전적으로 스칼라 값에 어떤 연산자를 사용하느냐에 달려있다.
print "123df" * 3; # 369 with warning.
print "z" . 5*7 ; # z35
|
연산자 우선순위
C 언어와 똑같다.
착각하고 있던 것이 지수 연산인데 4 ** 3 ** 2 의 경우는 4 ** ( 3 ** 2 ) 와 같다.
우선순위 보단 괄호를 잘 사용하자.
비교 연산자
문자와 숫자의 비교 연산자는 다르다.
비교
|
숫자
|
문자열
|
같음
|
==
|
eq ( euqal )
|
같지않음
|
!=
|
ne ( not equal )
|
작음
|
<
|
lt ( less than )
|
큼 |
>
|
gt ( greater than )
|
작거나 같음
|
<=
|
le ( less than or equal )
|
크거나 같음
|
>=
|
ge ( greater than or equal )
|
Boolean
펄에는 불리언이 없기 때문에 이를 대신해 특별한 규칙을 사용한다.
- 0 , '', '0' , undef 은 false
undef 값
스칼라 변수에 값을 넣기 전 ( 값 할당 전 ) undef 로 자동 할당 된다.
undef 라는 값을 숫자로 사용하려 한다면 이 값은 0 인 척할 것이고
undef 라는 값을 문자로 사용하려 한다면 이 값은 '' 인 척 할 것이다.
하지만 undef 는 숫자도 문자열도 아니며 완전히 별개의 형태를 가진 스칼라 값이다.
<STDIN> 함수
사용자 입력을 가져오는 경우 <STDIN> 함수를 사용할 수 있다.
my $line = <STDIN>;
if($line eq '\n' ) {
print "a";
} else {
print "b";
}
|
chomp 함수
chomp 는 줄 바꿈을 없애주는 함수다.
흔히 아래와 같이 사용한다.
chomp ( my $line = <STDIN> );
print $line ;
|
'Script > Perl' 카테고리의 다른 글
07. Hash (0) | 2020.01.21 |
---|---|
06. Array Function (0) | 2020.01.21 |
04. Variable (0) | 2020.01.21 |
03. Hello World (0) | 2020.01.21 |
02. Elipse 에 Perl IDE 설치 (0) | 2020.01.21 |