세로형
Recent Posts
Recent Comments
Link
04-26 00:00
«   2024/04   »
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 26 27
28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

펄 배열(perl array) 본문

perl

펄 배열(perl array)

이수진의 블로그 2017. 9. 21. 08:59

펄에는 배열이란것이 있습니다.(거의 모든 언어가 다 있지만..)

배열이란 것은 연속된 메모리 공간에 변수를 담아두는 겁니다.

 

예를 들어

$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를 갖는 배열
($a17#두 값 현재 $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 = (45, @fred, 67);
print(@barney);   #합쳐짐. 2차원 배열이 아니라, 1차원 배열 구조로
print("\n");
 
($a$b$c)= (123);
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에 대해 알아보겠습니다!

 

반응형
그리드형
Comments