3 Array and List Data
표현 예제
(1,2,3) #세 값 : 1 , 2 ,3
(“cosmos”,4.5) #두 값 : “cosmos” 와 4.5
() # 공백 리스트
두개의 마침표 :: 리스트 구성자
(1 .. 5 ) # 1 , 2 , 3 , 4, 5
(1.2 .. 5.2) # 1.2 , 2.2 , 3.2 , 4.2 , 5.2
(2 .. 6 , 10 , 12) # 2,3,4,5,6,10,12
($a .. $b) # $a 와 $b
(1.3 .. 6.1) # 1.3 , 2.3 , 3.3 , 4.3 , 5.3
@a = (“cosmoslight”,”huni”,”mirageg”,”yuni”);
quote word -> qw를 사용하여 인용부호와 쉼표를 제거함.
@a = qw ( cosmoslight, huni , mirageg ,yuni);
배열의 할당
@cosmos = (1,2,3);
@fred = @cosmos;
@cosmos = 1; # (1)와 동일
@fred = qw (one, two);
@cosmos = (4,5 ,@fred,6,7); # 4,5, “one”,”two”,6,7
($a,$b,$c) = (1,2,3); #$a = 1, $b=2, $c=3
($d,@cosmos) = ($a,$b,$c); #$d= $a , @cosmos = ($b,$c)
** 이해하
@fred = (1,2,3);
$length = @fred; #$length는 현재 @fred의 배열 길이
($a) = @fred; #배열의 첫번째 요소를 얻음.
배열 첨자
@cosmos = (7,8,9);
$b = $cosmos[0]; #첫번째요소 할당.
$cosmos[0] = 5; #첫번째요소를 7에서 5로 변경 함.
@cosmos[0,1]; #($fred[0],$fred[1])와 동일
@cosmos[0,1] = @cosmos[1,0]; # 0,1요소를 서로 교환
@cosmos[0,1,2] = @cosmos[1,1,1] ; #0부터 2번째 요소까지 모두 1번째 요소로 변경함.
@cosmos[1,2] = (9,10);
배열의 끝을 넘어서는 배열요소에 엑세스시는 undef을 리턴함.
배열의 끝을 넘어서는 배열요소에 할당을 하면 자동을 배열이 확장하고 중간요소는 undef으로 채워진다.
$#cosmos :: 마지막 배열요소의 인텍스 값을 구하기
음수 첨자는 :: 끝에서 부터 n번째를 의미 한다.
리스트 함수
push 와 pop 함수
push :: 오른쪽에 요소를 추가 한다.
예) push (@mylist,$newvalue); #@mylist = (@mylist,$newvalue)와 동일
pop :: 오르쪽의 요소를 제거하고 리턴한다.
예) $oldvalue = pop (@mylist); #@mylist의 마지막 요소를 제거 한다.
shift와 unshift 함수 (push와 pop의 왼쪽 버젼)
unshift :: 왼쪽에 요소를 추가한다.
예)unshift (@mylist,$newvalue); #@mylist = ($newvalue,@mylist)와 동일
shift :: 왼쪽에 요소를 제거한다.
예)$remove = shift(@mylist); #($remove,@mylist) = @mylist와 동일
reverse 함수 :: 원래 리스트는 그냥 두고 리스트 역순으로 변환하여 리턴한다.
sort 함수 :: 원래 리스트는 그냥 두고 ascii 상으로 정렬하여 리턴한다. (숫자에 대해서 산술적으로 정렬되지 않는다.)
chomp 함수 :: 배열요소는 모든 요소에 대해서 \n을 제거 한다.
스칼라와 리스트 구분 :: 상황에 따라 , 스칼라 <-> 리스트 변경된다.
배열로서의 <STDIN>
@a = <STDIN>;
각 행은 리스트의 개별 요소로 리턴된다. 멈추기 위해서는 Ctrl + D
배열의 변수 삽입