펄 배열 2번째 이야기를 시작합니다.
몇몇 특징과, push, pop에 대해서 볼까해요!
먼저 아래와 같은 특징이 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
@who = (qw(fred array soojin lee))[2,3]; #이런식으로 잘라서 넣을 수도 있다.
print($who[0].", ".$who[1]."\n ");
@fred = (7,8,9);
@barney = (2,1,0);
@backfred = @fred[@barney]; #barney가 2,1,0 이니까 $fred[2] 와 같은 값이 들어간다. -> 슬라이스로 들어가게됨
#@fred[2,1,0] 또는 ($fred[2], $fred[1], $fred[0]), 또는 (9,8,7) 과 동일하다.
for($i = 0 ; $i < $#backfred+1 ; $i++){
print("요소 2 : $backfred[$i] \n");
}
|
cs |
결과는 이와 같이 나오는데요
2~3줄은 이해가 무리 없이 되실 꺼 같아요.
2번 3번 인덱스 값을 짤라서 @who 배열에 넣어서 출력하는거에요
밑에는 이런 방식입니다.
@barney는 2,1,0 이 있죠. 이 값으로 인덱스로 접근하게 되는 겁니다.
그래서 backfred 첫번째 인덱스에는 fred 2번 인덱스인 9, 값
backfred 두번째 인덱스에는 fred 1번 인덱스인 8,
세번째 인덱스에는 fred 0번 인덱스인 7이 들어가게 되죠
그리고 아래와 같은 특징도 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
@arr = (1,2,3);
$arr[8] = "go"; #중간 인덱스 값들은 전부 undef
for($i = 0 ; $i < $#arr+1 ; $i++){
if(!defined($arr[$i])){ #defined는 값이 있으면 출력하게 해준다.
print("값이 없다 \n"); #그래서 값이 없는것을 찾으려면 !을 붙여야 한다.
next; #continue와 같은 역할은 next;가 한다.
}
print("요소 3 : $arr[$i] \n");
}
|
cs |
저렇게 인덱스를 건너뛰어서 값을 넣으면 중간 값은 undef값이 들어갑니다.
그래서 defined함수에 걸리게 되죠!
next는 c나 java에서 사용하는 continue와 같은 역할이라고 보면 됩니당!
그리고 push, pop
#그리고 리스트 끝에 값을 추가하는 것은 push를 이용한다.
# push(@배열, $값) 이런식으로 사용한다. 변수면 $를 쓰고,
변수가 아닌 값이면 그냥 쓴다.
# $value = pop(@배열) 하면 맨 끝의 값이 반환된다.
# 또한 push(@arr, 1,2,3) 과 같이 하면 1,2,3 이 한꺼번에 push된다.
# shift, unshift는 맨 처음 위치에서 일어나는 연산이다.
사용방법은 push, pop과 일치하다.
와 같습니다.
그리고 정렬과 역순으로 정렬 하는 방법이 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12 |
@a = (1,2,3);
print(@a);
print("\n");
@a = reverse(@a); #reverse는 역순으로.
print(@a);
print("\n");
@x = ("asb", "lee", "soojin", "aaa");
@y = sort(@x); #정렬을 해준다.
print(@y);
print("\n");
|
cs |
와 같습니다!
이걸로 perl 배열 정리를 마칠게요
'perl' 카테고리의 다른 글
펄 함수(서브루틴) (perl subroutine) (0) | 2017.10.10 |
---|---|
펄 해시(perl hash), 삽입, 삭제(delete), keys함수, values 함수 (0) | 2017.09.25 |
펄 배열(perl array) (0) | 2017.09.21 |
펄 주석 공부해보자 (0) | 2017.09.21 |
펄 if문, perl 조건문 (0) | 2017.09.19 |