push 함수는 새로운 목록(배열)의 크기를 리턴한다.
목록으로부터 마지막 항목을 제거하고 제거된 항목을 리턴받기위해 pop 함수를 사용한다. 최초의 목록에대해 pop 함수를 수행하면 pop 함수는 장어를 리턴하며, @food는 두개의 요소를 갖게된다:
$grub = pop(@food); # $grub = "장어"
배열을 스칼라 변수에 할당하는 것도 가능하다. 사용되는 환경이 중요하다.
$f = @food;
은 @food의 크기를 할당하지만
$f = "@food";
은 각 요소 사이를 공백으로 채운 문자열을 리턴한다. 이 공백은 특수 변수 $"의 값을 변경함으로서 임의의 다른 문자열로 대치할 수 있다. 이 변수는 펄의 주요 특수 변수중의 하나이며, 가장 이상한 이름을 가지고 있다.
배열은 스칼라 변수를 다중 할당하는데에 사용될 수도 있다:
($a, $b) = ($c, $d); # $a=$c; $b=$d;와 동일
($a, $b) = @food; # $a와 $b에 @food의 처음 두 항목을 할당
($a, @somefood) = @food; # $a는 @food의 첫번째 항목
# @somefood는 나머지 목록
(@somefood, $a) = @food; # @somefood는 @food
# $a는 정의되지 않음
마지막 할당문에서 배열의 크기는 자동조절되며 따라서 @somefood는 @food 만한 크기로 증가하기때문에 발생한다. 따라서 위와같은 형식은 절대 피해야 한다.
마지막으로 목록의 마지막 배열첨자는 다음과 같은 식을 사용해서 찾을 수 있다.
$#food
배열출력
환경이 중요하므로 다음의 모든 코드가 서로다른 결과를 만드는 것에 놀라지 말기 바란다:
print @food; # 배열자체
print "@food"; # 큰 따옴표로 인용
print @food.""; # 스칼라 변수 환경