배열은 그 길이를 변경할 수 있고, 리스트는 그럴 수 없다. 배열은 사용자가 push 또는 pop을 할 수 있는 대상이고, 리스트는 값들의 집합이다. 어떤 사람들은 리스트는 값이고 배열은 변수라고 구분한다. 서브루틴은 리스트를 인자로 받고 리스트를 반환하며, 당신은 뭔가를 리스트에 넣고, 배열을 초기화할 때 리스트를 사용하고, 리스트를 순회하기 위하여 "foreach()"를 사용한다. "@"로 시작하는 변수는 배열이다, 익명 배열들은 배열이다, 스칼라 문맥 안의 배열은 그 배열의 원소의 갯수로 동작한다, 서브루틴은 @_ 배열을 통해 인자에 접근한다, push/pop/shift는 배열에만 사용가능하다.
참고로, 스칼라 문맥 안의 리스트란 것은 없다. 다음과 같은 경우
$scalar = (2, 5, 7, 9);
당신은 스칼라 문맥 안에서 컴마 연산자를 사용하고 있는 것이고, 결국 스칼라 컴마 연산자를 사용하게 된다. 여기에 리스트란 건 없었다! 이는 결과적으로 마지막 값인 9가 반환되게 한다.
<trackbackreceived>