Ключевые слова:loop, perl, example, (найти похожие документы)
Date: Mon, 22 Jul 2002 16:27:49 +0600
From: Eugene Bodin <b1@ngs.ru>
Newsgroups: fido7.ru.perl
Subject: [Perl] Особонности работы с массивами в foreach
OP> В какую переменную перл кладет индекс обрабатываемого элемента массива
OP> при использовании foreach?
AB> $_
IMHO, это ответ на другой вопрос -
"Как обращаться к текущему элементу массива?".
Hа исходный вопрос - ни в какую (обычно это и не нужно -
изменять значения можно прямо на месте (в отличие от PHP)).
Hо если хочется знать индекс - тоже можно.
Пример: увеличить все элементы массива на 1
(кстати, забавная фича со строковым элементом).
- ---начало---
use strict;
my @arr = (1, 2, 3, "a");
print "@arr\n";
# без индекса
foreach (@arr){
++$_;
}
print "@arr\n";
foreach my $current (@arr){
++$current;
}
print "@arr\n";
# с индексом
foreach (0..@arr-1){
++$arr[$_];
}
print "@arr\n";
foreach my $index (0..@arr-1){
++$arr[$index];
}
print "@arr\n";
foreach (0..$#arr){
++$arr[$_];
}
print "@arr\n";
{
my $index=0;
foreach (@arr){
++$arr[$index]; # или ++$_;
++$index;
}
}
print "@arr\n";
- ---конец---