전달하는 방법을 배열에 Perl

작업입니다. 코드에서 이 Perl 프로그램의 배열을 가지고 있습니다 @arr (첫 번째 세 글자를 말씀에서"array"). 이 배열의 일부는 값입니다. 이동해야를 통해 모든 배열 요소는 몇 가지 작업을 수행 각 항목입니다.

통합 배열을 사용하여 foreach

권장하는 방법으로 이 문제를 해결하기 위해 사용하는 것입 foreach. 여기에 샘플 프로그램:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

foreach my $el (@arr) {
    warn $el;
}

그것은 모두 아주 간단합니다. 거기에는 훌륭한 기능들을 가지고 있습니다. 다음으로 우리는 변수를 만듭 $el (의 약어 단어 element). 사이클 foreach 장소에서는 변수가 첫 번째 배열의 요소에 우리의 예에서(이 번호는 1)입니다. 루프를 실행 몸 warn $el; —이 제공 값을 화면에. 사이클 foreach 으로 두 변수 $el 다음에서 값을 배열 다시 실행하는 루프는 몸입니다. 이것이 반복될 때까지 반복 몸을 실행하지 않는 모든 배열 요소입니다.

통합 배열을 사용하여 루프 for

여기에 샘플 프로그램하는 방법에 걸 Perl 배열을 사용하여 루프 유사한 루프에는 C 언어:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

for (my $i = 0; $i < @arr; $i++) {
    warn $arr[$i];
}

무슨 일이 일어나고 있는지. 가 배열@을 제공합니다. 그런 다음 우리는 새로운 변수 $i 및 할당 값을 0(0 는 인덱스 에서 첫 번째 요소는 Perl 배). 한 후 실행하는 루프 몸 warn $arr[$i];. 후에는 변수 $i운전자 ++ 하나씩 증가합니다. 그런 다음 조건을 점검합 $i < @arr. 는 경우 상태를 반환한 후,모든 반복됩니다.

이 솔루션은 다소보다 더 복잡한 솔루션을 사용하여 foreach. 당신은 신중하게 할 필요가있는 작품인 경우의 값입니다. 는 잘못된 경우 를 작성을 확인할 수 있습 건너뛰거나 마지막 값 거나 액세스할 수 있는 존재하지 않는 요소는 마지막 요소의 배열(이 치료는 반환 undef).

여기에는 예제 프로그램은 동일한 방식으로 작동하지만,사용은 다른 상태 for:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

for (my $i = 0; $i <= $#arr; $i++) {
    warn $arr[$i];
}

for 편 이것을 사용하는 경우 루프에서 몸 안의 값만 요소의 번호입니다. 그러나 이 경우에는 당신이 사용할 수 있습 foreach 주기,수동으로 노출로 변수를 인덱스:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);
my $i = 0;

foreach my $el (@arr) {
    warn "index: $i value: $el";
    $i++;
}

이 옵션은 쉽게 사람에 의해 인식하고 그것은 덜 취약을 바하마는 경계 값입니다. 하지만 거기에 더욱 편리한 방법을 말과 같은 일 each.

통합 배열을 사용하여 whileeach

키워드 each 를 사용하지 않는 매우 자주하지만,거의 항상 사용하는 경우 그것은 작동하는 데 사용되는 Hesham. 작은 알려져 있지만, each 하는 데 사용될 수 통합 배열로 인덱스의 요소와 요소이다. 기 이전으로 작성된 코드를 사용하여 each:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

while (my ($i, $el) = each @arr) {
    warn "index: $i value: $el";
}

each 에 적용할 수 있는 배열에서 펄 5.12. 의 코드를 실행하는 경우에는 더 이전 버전의 Perl,그것은 오류가:

Type of arg 1 to each must be hash (not private array) at script.pl line 5, near "@arr) "
Execution of script.pl aborted due to compilation errors.

관련 주제

다른 기사