1

2

3

4

$string1=변수입니다;

$string2=변수입니다;

$number1=100;

$number2=100;

 

그냥 일반적인 변수를 스칼라 변수(Scalar Variable)이라고 하고 $로 시작한다. $ 다음에 변수 이름을 쓰면 된다. 변수 이름은 첫 글자는 알파벳 또는 밑줄(_) 이고 다음에는 알파벳, 숫자, 밑줄 이어야 한다.

변수에 문자열을 대입을 할 때는 1라인 또는 2라인과 같이 따옴표를 사용하는데 차이점은 는 따옴표 안에 다른 변수가 있을 경우에 해당 값이 치환이 되서 저장되지만 의 경우에는 변수 이름이 그대로 저장이 된다. 는 내용이 써있는 그대로 반영된다는 것이다.

Perl C에서처럼 변수의 타입을 지정해 주지 않아도 된다. 숫자를 넣어도 되고 문자를 넣어도 된다. 앞의 형식에서 3라인은 숫자 100을 저장한 것이고 4라인은 문자열 100을 저장한 것이다. 그러나 Perl에서는 상관이 없다. 문자 형식으로 대입을 했더라도 4라인은 특별한 변환 함수를 사용하지 않아도 숫자로 사용될 수 있다. 다음의 예를 실행해 보자.

 

 

1

2

3

4

5

6

7

8

9

10

$value1=100;

$value2=50;

$sum1 = $value1 + $value2;

$sum2 = $value1 . $value2;

$sum3 = $value1 + $value2;

$sum4 = $value1 + $value2;

print Sum1 : $sum1\n;

print Sum2 : $sum2\n;

print Sum3 : $sum3\n;

print Sum4 : $sum4\n;

 

위의 예제를 실행하면 다음과 같은 결과가 나온다.

 

[실행 결과]

Sum1 : 150

Sum2 : 10050

Sum3 : 100 + 50

Sum4 : $value1 + $value2

 

$value1에서 를 사용하여 100이라는 값을 저장하고 $value2에서는 50을 숫자로 저장을 했지만, $sum1에서는 숫자로 연산이 되고 $sum2에서는 문자로 연산이 된 것을 볼 수 있다. 4라인에서 .은 문자열을 붙이라는 명령이다. 이처럼 Perl은 변수 타입에 신경 쓰지 않아도 된다. 데이터 타입을 엄격히 선언하고 사용하는 언어를 사용했던 사람은 상당히 편하게 느낄 것이다. 하지만 프로그램이 복잡해지면 원하지 않은 결과를 얻을 수도 있으니 주의해야 한다.

실행 결과에서 Sum3 Sum4는 앞에서 말한 의 차이점을 보여주고 있다. Sum3 $value1 $value2의 값이 치환되어서 출력되었고, Sum4 $value1 $value2를 문자열로 출력하였다. 예를 보면 의 차이점을 알 수 있을 것이다.

 

앞의 예제에 보면 print 명령의 마지막에 \n 라는 것을 볼 수 있다. 이것은 이스케이프 시퀀스(Escape Sequence)라고 하는데 문자열 안에서 어떤 특정한 기능을 수행하며 이스케이프 시퀀스는 백슬래시() 뒤에 문자로 이루어져 있다. 한글을 지원하는 에디터에서는 대부분이 \과 같이 원화 표시로 나오게 되는데 어떻게 사용하던지 상관은 없다. 주의할 점은 조금 전에 알아보았지만 이스케이프 문자는 이중 따옴표(“”)에서만 작동한다는 점입니다.

다음은 이스케이프 문자의 예이다.

 

Escape 문자

기능

\a

(Beep)

\b

백스페이스(Backspace)

\cn

Ctrl + n 문자

\f

폼 피드(Form feed)

\l

다음 글자를 소문자로

\L

다음의 모든 글자를 소문자로

\n

줄바꿈(Newline)

\r

캐리지 리턴(Carriage return)

\Q

특수 패턴 문자 무시

\t

(Tab)

\u

다음 글자를 대문자로

\U

다음의 모든 문자를 대문자로

\v

버티컬 탭(Vertical tab)

 

백슬래시는 이중 따옴표 안에서 $ , @, 등의 문자를 표시할 때도 사용한다.

 

print Variable name is $name;

 

앞의 경우는 변수 이름을 표시하려고 하지만 변수 $name의 값이 대입되어 결과가 출력될 것이다. $name이라는 변수에 1이라는 값이 들어있다면 결과는 Variable name is 1 이 될 것이다. 그러나 다음과 같이 하면 변수 이름이 출력된다.

 

print Variable name is \$name;

 

위의 경우에는 백슬래시 다음에 오는 문자는 그대로 출력되며 결과는 Variable name is $name이 된다.

Posted by OJJ