전종필 배열속에 배열을 집어넣으려면 어떻게 할까요? Perl의 배열 자체는 C언어에서와 같은 다차원 배열을 만들수 없습니다. 따라서 리퍼런스(참조)를 이용해야 합니다. @all의 경우는 그냥 1차원의 배열이 되어서 원하는 효과를 거둘 수 없습니다. @twodim의
경우처럼 각 배열앞에 \(역슬래쉬)를 붙여야 각각이 리퍼런스가 되어 2차원 배열의 효과를 갖게 됩니다.@twodim에서 2번째 요소인 @fruit 배열의 마지막 요소인 '포도'에 접근하려면 위와 같이 이라 합니다.$twodim[1]은 배열 @fruit의 리퍼런스(\@fruit)이고, 배열의 리퍼런스를 이용하여 배열의 요소에 접근하려면 ->[ ]를 이용하기 때문입니다. 그러므로, 시금치를 콩나물로 바꾸려면 과 같이 하면 됩니다. 위의 @twodim의 안에 있는 모든 것을 출력하려면 다음과 같이 합니다.
또, 내부용 배열을 따로 선언하지 않고 @twodim을 한꺼번에 선언하려면,
과 같이 각 내부배열에 해당하는 목록을 [ ]로 감싸면 됩니다. 이와 같이 배열 이름을 주지 않고
[와 ]로 감싼 배열을 이름없는 배열(anonymous array)이라고 합니다.3차원, 4차원의 배열은 어떻게 할까요 ? 같은 원리를 이용하면 됩니다. 직접 한 번 해 보시길... |
Tips in Action > 배열과 Hash >