day 4. 음 멀짜야 빨리 늘까..펄..펄...
- 배열
- 리스트 데이터
- 배열 : 리스트를 담는 변수
- 리스트 : 순서가 있는 스칼라 데이터 (Order)
리스트 리터럴
- 괄호() 안에 쉼표, 로 구분
- 리스트의 요소는 상수일 필요도 없음. (재계산 가능한 식 OK)
- 예)
- (1,2,3) ;
- ("alfred", 4, 5);
- ($alice, 1,2,3);
- ($alice+$bob, $cat);
- 공백리스트 : ()
- 리스트 구성자
- 두 개의 스칼라 값을 두 개의 마침표로 구분해서 표현 ".." : 왼쪽에서 오른쪽으로 증가
- 왼쪽 스칼라 값보다 오른쪽 스칼라가 작을 경우, 공백리스트
- 문자열이 많은 리스트는 qw()를 이용하면 편함 (quote word 줄임말)
- 예)
- (1 .. 5) # (1,2,3,4,5)와 동일
- (1.1 .. 5.1) # (1.1, 2.1, 3.1, 4.1, 5.1)와 동일
- ($x .. $y) # $x와 $y의 현재값으로 결정되는 범위
- (1.5 .. 3.1) # (1.5, 2.5)와 동일
- (5 .. 1) # () 공백리스트와 동일
배열 변수
- 배열변수 : @(at)을 이용
- 할당 되지 않은 배열 변수는 공백 리스트 값을 가짐
배열 연산자
- 할당
- @alice = @bob;
- @charlie = 1; # @charlie = (1);
- cf. 스칼라 값이 할당 되는 경우, 스칼라 값은 배열의 요소가 됨
- 치환
- @alice = ("a", "b");
- @bob = (@alice, "c", "d"); # @bob = ("a", "b", "c", "d") 와 동일
- @alice = ("wow", @alice); # @alice = ("wow", "a", "b") 와 동일, "wow"를 첫 요소로 추가함
- 기타 : 상응하는 값 대치
- 할당은 오른쪽 값을 왼쪽으로...
- ($a, $b, $c) = (1, 2, 3); # $a=1, $b=2, $c=3 와 동일
- ($a, $b) = ($b, $a) # $a와 $b 값 swap
- ($d, @alice) = ($a, $b, $c); # $d = $a, @alice = ($b, $c);