리스트는 괄호로 묶여진 일련의 스칼라 값들이다. 다음의 예를 보자.

(5, book, 4, perl)

위의 리스트에는 4개의 요소로 구성되어 있다. 리스트의 길이에는 제한이 없다. 그리고 어떤 스칼라 값도 포함할 수 있다.

특정 목적으로 만들어진 변수에 리스트를 저장한 변수를 배열 변수(Array Variable)이라고 하고 줄여서 배열이라고 한다.

 

 

@numbers=(1,2,3,4,5);

@colors=(Red,Green,Blue);

@array=(5,perl,computer,45);

 

배열은 @로 시작하는 변수이다. 배열의 값을 사용할 때는 $numbers[1]과 같이 $를 사용하고 [ ]를 사용하여 배열 번호를 입력하면 된다. 번호는 0번부터 시작한다. 앞에서 $numbers[3]의 값이 0번부터 시작하면 처음부터 4번째의 값인 4가 된다.

그렇다면 $numbers[5]의 값은 무엇일까? @numebrs 0번부터 4번까지 5가지가 있다. $number[5] @numbers 배열의 6번째 값을 의미하는데 실제로 존재하지 않는 값이다. 이럴 경우에는 0(null)이 된다.

 

배열에도 스칼라 변수에서와 마찬가지로 숫자와 문자열 값을 구분하지 않는다. @array에서와 같이 배열에 값을 넣을 때도 마찬가지로 숫자값과 문자값을 혼용하여 입력할 수 있다.

 

@array2 = @array;

 

위의 식에서는 @array의 내용이 @array2에 그대로 대입된다. 같은 배열이 되는 것이다.

그렇다면 다음과 같은 경우는 어떻게 될까?

 

$size=@array;

 

눈치가 빠른 사람이면 변수 이름을 보고 알았을 것이다.  $size에는 @array 배열의 크기가 대입된다. @array에는 모두 네 가지의 값이 저장되어 있으므로 4라는 값이 대입된다.

 

다음의 예는 배열의 마지막 첨자(subscript)를 대입하는 것이다. $last_index에는 2가 대입된다.

 

$last_index=$#colors;

 

리스트에는 몇 가지 함수가 있다. 하나씩 알아보자.

 

(1) shift

- 리스트의 첫 요소를 꺼낸다.

 

@list=(1,2,3,4);

$num = shift (@list);

 

결과는 $num에는 1이 들어가고 @list=(2,3,4)가 된다. 리스트 배열에서 첫 번째 요소를 꺼내고 해당 내용을 삭제한다.

 

(2)unshift

- 리스트의 처음에 요소를 추가하고 각 요소는 뒤로 하나씩 밀리게 된다.

 

@list=(1,2,3,4);

unshift(@list, 0);

 

결과는 @list=(0,1,2,3,4)가 된다. 지정된 값이 리스트의 첫 번째 요소가 되고 나머지는 그 뒤를 이어 하나씩 밀리게 되는 것이다.

 

(3) push

- 리스트의 마지막에 요소를 추가한다.

 

@list=(1,2,3,4);

push(@list, 5);

 

결과는 5 @list의 마지막에 추가가 되어 @list=(1,2,3,4,5)가 된다.

 

(4) pop

- 리스트의 마지막 요소를 꺼낸다.

 

@list=(1,2,3,4);

$num=pop(@list);

 

결과는 @list의 마지막 요소 4를 꺼내서 $num에 대입하게 되고 @list=(1,2,3)이 된다.

 

(5) sort

- 리스트를 순서대로 정렬한다.

 

@list=(3,2,5,4,1);

@list=sort(@list);

 

결과는 @list에 있던 (3,2,5,4,1)을 값을 크기 순대로 정렬하여 (1,2,3,4,5)의 값이 @list에 다시 저장된다.

 

(6) reverse

- 리스트의 순서를 역순으로 뒤집는다.

 

@list=(1,2,3,4,5);

@list=reverse(@list);

 

결과는 @list (1,2,3,4,5)를 거꾸로 정렬하여 (5,4,3,2,1) @list에 저장된다.

Posted by OJJ