액세스하는 방법을 배열 요소에 Perl

작업입니다. In Perl,프로그램을 배열을 가지고 있습니다. 당신은 당신의 값을 하나의 배열 요소입니다.

여기에는 예입니다 그것을 어떻게:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print $arr[1];

저장할 경우 텍스트의 이 프로그램으로 파일 script.pl 고 실행 perl script.pl,화면이 나타나 텍스트 two.

그래서,여기에 무슨 일이 일어나.

첫째,우리가 만든 배라는 @arr. 가변 배열로 시작하는 문자 @,이 기호는 유사한 첫 번째 편지에서"단어 배열". 우리가 만든 배열 및가에 위치한 3 개의 항목입니다. 우리의 예제에서,모든 3 개의 항목 라인,하지만 모두 하나의 배열을 포함할 수 있는 항목의 아주 다른 형태,예를 들어,문자열,숫자 및 참조가 있습니다.

각각의 요소를 배열에 있는 그것의 자신의 일련 번호가 있습니다. 이 숫자는"이라는 인덱스". 프로그래밍 언어 펄 그리고 많은 다른 프로그래밍 언어의 요소를 배열이 있는 번호로 시작 번호 0. 예제는 배열 담 3 요소:

  • 문자열 'one' 는 배열 요소와 색인 0
  • 문자열 'two' 는 배열 요소와 색인 1
  • 문자열 'three' 는 배열 요소와 색인 2

액세스하기 위해 배열 요소와 색인 1 를 작성해야 합 $arr[1]. 의 이름을 쓰기 어레이와 스퀘어 괄호 안의 인덱스는 우리가 원하는 검색 할 수 있습니다. 참고 하나의 기능입니다. 때 우리 차례 한 배열의 요소에 대한 기호 @ 에서의 이름 배열을 쓸 필요는 상징 $ 일 (달러 기호,상징 유사한 첫 번째 편지에서"단어는 스칼라"). 아이디어는 으로 이러한 기록,우리는 명확하게 강조는 우리가 해야 하나 값지,내 생각에 이것은 오류 디자인 언어입니다. 그것이 단순화되지 않지만,반대로 만들어 더 어렵습니다. 프로그래밍 언어에서 Perl6 정, 하지만 Perl5 에 액세스할 때에는 배열 요소를 사용할 필요가에 달러 표시 $: $arr[1].

참조 마지막 요소에 배열

배열을 만드는 경우 @arr 자동으로 나타납 변수 $#arr 포함하는 인덱스의 마지막 요소입니다. 추가/제거에서 배열 변수가 자동으로 변경(그리고 심지어 당신의 자신 수를 기록에서 이 변수).

액세스하는 마지막 요소의 배열을 사용할 수 있습니다 녹화 $arr[$#arr]. 그러나 쉽 사용 $arr[-1] 일. Index -1 일 단의 인덱스 배열에서 마지막 요소,인덱스 -2 —는 끝에서 두 번째,등등.

잘못된 길

코드는 다음과 같습니다(주의깊게,이에 오류가 포함되):

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print @arr[1]; # error

이 옵션은 올바른 것으로,하지만 그 대신하여 정확스의 요소를 배열을 사용하여 $arr[1]기 사용 @arr[1].

저장할 경우 텍스트의 이 프로그램으로 파일 script.pl 고 그것을 실행 perl script.pl,의 화면 텍스트 two. 문자열 'two' 일,이것은 참으로 요소와 색인 1 에 배열 @arr,그래서 먼저 눈에 오류가 표시되지 않습니다.

그러나 추가하는 경우 프로그램 코드 라인 use warnings; 일 (는 거의 항상 가치하고),그 다음 출력 될 것입니다 눈에 보이는 경고:

Scalar value @arr[1] better written as $arr[1] at script.pl line 7.
two

양식 @arr[ ] —은 점점에서 여러 값을 배열입니다. 그것은"cut". 몇 가지 예:

  • @arr[1,2] —의 목록을 반환하는 두 가지 요소,배열 요소와 인덱스 1 과 2
  • @arr[0..2] —의 목록을 반환합니다 세 개의 요소를 배열 요소와 인덱스 0 1 2
  • @arr[1, 1] —의 목록을 반환하는 두 가지 요소,반복되는 요소에서 인덱스 1 두번

항목 @arr[1] —의 목록을 반환합니다 하나의 요소 경고가 발생합니다.

항목 @arr[1,] —의 목록을 반환합니다 하나의 요소가 없는 경고합니다.

필요한 경우의 값을 하나의 배열의 요소,그것은 더 나은 쓰 $arr[1].

관련 주제

다른 기사