Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > next if /$ForceMultipleResponseTag/;


Автор: Danissimo 8.12.2006, 14:37
Код такой:
foreach (@Response) {
    next if /$ForceMultipleResponseTag/;
    # ...
}
Интересно, такое регулярное выражение имеет смысл? Или это просто опечатка?

Автор: korob2001 8.12.2006, 14:56
Имеет.
Пропустить всё и перейти к следующей итерации цикла. То же что и в Java.
Код

for (int i=0; i < Response.length; i++) {
    if (свряем елемент Response[i] с ранее созданным шаблоном)
            continue;
    // Что-то делаем
}

Автор: Danissimo 8.12.2006, 15:11
korob2001, хочу обратить внимание на то, что первым символов в выражении стоит $. Это что-нибудь меняет?

Автор: korob2001 8.12.2006, 16:03
Код

my $ForceMultipleResponseTag = "word";
foreach (@Response) {
    next if /$ForceMultipleResponseTag/;
    # ...
}

Равносильно следующему:
Код

foreach (@Response) {
    next if /word/;
    # ...
}

Если встречается слово word, то пропускаем всё что идёт за этой строкой и переходим к следующей итерации цикла, в данном случае к следующему элементу массива @Response.

PS: Кстати, если значение переменной $ForceMultipleResponseTag не изменяется, то лучше поставить модификатор o, что бы шаблон не компилировать на каждой итерации цикла. Т.е. вот так:
Код

next if /$ForceMultipleResponseTag/o;

Теперь шаблон будет скомпилирован только один раз, что увеличет производительность.

Автор: Danissimo 8.12.2006, 16:15
Сасибо, все сходится. Оказывается эта переменная экпортируется. Черт, циклическая зависимость получается... Не нра мне это. Спасибо, korob2001, большое еще раз.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)