Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

perl 배열

perl의 배열은 변수명앞에 '$' 대신 '@'를 붙여서 선언한다.
#!/usr/bin/perl

@city=("seoul", "pusan", "kwang-ju");

print "@city";
print @city;
print 할때 쌍따움표를 붙여주면 각 원소들이 공백문자로 구분이 된다. 그렇지 않을경우 구분이 되지 않는다. 배열의 내용을 간단히 확인하기 위한 목적이라면 쌍따움표를 붙여서 출력하는게 좋을 것이다.

첨자를 이용한 접근

다른 대부분의 언어들과 마찬가지로 perl 역시 첨자를 이용해서 배열원소에 접근할 수 있도록 하고 있다. 첨자는 0부터 시작한다.
#!/usr/bin/perl

@city=("seoul", "pusan", "kwang-ju");

print "city 0 :",$city[0],"\n";
print "city 1 :",$city[1],"\n";
print "city 2 :",$city[2],"\n";
일반적으로 첨자는 양의정수를 가지지지만 음의정수를 가질 수 있다. 첨자가 음의 정수일경우 기준위치는 배열의 마지막이 된다. 단 0이 아닌 -1 부터 시작한다. 약간 헛갈리긴 하지만 -0 이라는 숫자는 없기 때문이다.
print $city[-1],"\n"; # kwang-ju

qw 서브루틴의 활용

배열의 원소는 ,"를 사용해서 구분해서 입력한다. qw서브루틴은 공백문자를 기준으로 배열을 만들어준다. qw를 이용하면 좀더 간단하게 배열을 생성할 수 있다.
@city=qw(seoul pusan kwang-ju);

연속된 숫자를 배열에 넣기

다른언어에서 연속된 숫자를 배열에 집어 넣을려면 루프를 돌리는 번거로운 과정을 거쳐야 한다. perl은 다음과 같이 간단하게 연속된 숫자를 배열에 담을 수 있다.
@10=(1...10);
@100=(1...100);
@200=(100...200);
@a_z=(a...z);

배열의 크기 알아내기

scalar() 함수를 이용하거나 배열을 scalar 변수에 재정의 하는 것으로 배열의 크기를 알아낼 수 있다.
@a_z=(a...z);
print scalar(@a_z),"\n";
$size=@a_z;
print $size,"\n";

배열원소 추가및 제거

대게의 최신언어들이 그렇듯이 간단하게 배열요소를 제어할 수 있는 함수들을 제공한다.
  • push() - 배열 마지막에 원소 추가.
  • unshift() - 배열 처음에 원소 추가.
  • pop() - 배열의 마지막 원소 제거.
  • shift() - 배열의 처음원소 제거.
    #!/usr/bin/perl
    
    # DEFINE AN ARRAY
    @a_z = (a...z);
    
    #push
    push(@a_z, 0...9);
    print "@a_z\n";
    
    #pop
    pop(@a_z);
    print "@a_z\n";
    
    # shift
    shift(@a_z);
    print "@a_z\n";
    
    # unshift
    unshift(@a_z, a);
    print "@a_z\n";