반응형
728x170
펄에는 배열이란것이 있습니다.(거의 모든 언어가 다 있지만..)
배열이란 것은 연속된 메모리 공간에 변수를 담아두는 겁니다.
예를 들어
$a
$b
를 선언하면
연속된 메모리 공간이 아닌
멀리 떨어진 메모리 공간에 저장될 수 있습니다.
하지만 배열로 선언하면 연속적으로 붙어 있게 되죠.
펄에서 배열을 사용하는 방법은
@arr = () 처럼 사용하게 됩니다.
@는 배열이라는 일종의 표시에요
1
2
3
4
5
6
7
8
9
10 |
@words = ("camel", "llama", "ap");
#배열은 위와 같이 @로 시작하고 값을 넣게 된다.
#push, pop으로 값을 넣을 수도 있다.
#만약 인용부호를 안두고 작성하는 방법은
@word2 = qw(camel llama ap);
#로 하면 된다고 한다.
#그리고 배열에 접근할 때는 @가 아닌 $로 접근한다. 왜냐하면 전체 배열을 참조하는것이 아니라, 단일 요소를 참조하는 것이기 때문에.
|
cs |
그리고 위를 보면
qw라는 것으로도 배열안에 값을 넣을 수 있습니다.
정석적인 배열 방법은 ("test", "test2", 3); 처럼 넣게 되지만
인용부호를 넣지 않고 싶으면 qw(test test2 3)
이런식으로 넣을 수 있는거죠!
그리고 배열은 선언할 때 @로 선언하지만 접근할 때는 $로 접근합니다.
왜냐하면 배열 요소 안에 있는건 단일 요소이기 때문이죠
이렇게 생각하시면 됩니다.
그리고
1
2
3
4
5
6
7
8
9 |
(1,2,3) #1, 2, 3을 갖는 배열
("fred", 4.5) # 두 값 fred, 4.5를 갖는 배열
($a, 17) #두 값 현재 $a값과 17을 갖는 배열
($a+$b, $d+$e) # 두 값.
() # 공백리스트
(1 .. 5) #(1,2,3,4,5) 와 동일
(1.2 .. 5.2) #(1.2, 2.2, 3.2, 4.2, 5.2) 와 동일
($a .. $b) # $a와 $b의 범위
|
cs |
와 같은 특징도 가지고 있어요
그리고 아래의 특징도!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 |
@fred = qw(one two);
@barney = (4, 5, @fred, 6, 7);
print(@barney); #합쳐짐. 2차원 배열이 아니라, 1차원 배열 구조로
print("\n");
($a, $b, $c)= (1, 2, 3);
print($a); #1
print($b); #2가 출력
print("\n");
($a, $b) = ($b, $a);
#값을 바꿀수도 있음.
($a, @fred2) = ($a, $b, $c); #$b, $c의 요소가 들어감
print(@fred2); #1, 3이 들어가있음 -> 위에서 a b를 바꾸었기 때문에.
print("\n");
@fred3 = (4,5,6);
$d = @fred3; #3이들어감. 즉, 길이값이 들어간다.
print($d."\n");
($d) = @fred3; #이렇게 하면 fred3의 첫번째 값이 들어가게 된다.
print($d."\n");
|
cs |
설명은 주석에 달아놨습니다
그리고 배열은 반복문을 통해서 자주 사용하는데요
순차적으로 저장되어 있기 때문에 그렇습니다.
보통 반복문 횟수를 배열 길이까지를 한정해 놓는데요
사용 방법은 아래와 같아요
1
2
3
4
5
6
7 |
# $#은 배열 길이가 나온다. 근데 -1된값이 나오기 때문에 java, c처럼 사용하려면 +1을 해야 정확하다.
print("배열 길이 : $#fred \n");
for($i = 0 ; $i < $#fred+1 ; $i++){
print("요소 : $fred[$i] \n"); #전부다 11이 출력된다. 다 2번째 요소로 변경되었기 때문에.
}
|
cs |
배열에 대한 첫번째 기본 정리는 여기까지 하구요
2번째 정리에서 배열 함수, push, pop에 대해 알아보겠습니다!
반응형
그리드형
'perl' 카테고리의 다른 글
펄 해시(perl hash), 삽입, 삭제(delete), keys함수, values 함수 (0) | 2017.09.25 |
---|---|
펄 배열(perl array) push, pop, 정렬, 역순 (0) | 2017.09.22 |
펄 주석 공부해보자 (0) | 2017.09.21 |
펄 if문, perl 조건문 (0) | 2017.09.19 |
펄 반복분 (perl 반복문) 펄 for문, 펄 while문, 펄 for my문 (0) | 2017.09.15 |