Forum Webscript.Ru

Программирование => Perl => Тема начата: sickboy от 17 Октября 2006, 13:24:50

Название: while, if, else - организация условий.
Отправлено: sickboy от 17 Октября 2006, 13:24:50
Привет.

Застрял на простецкой задаче, никак не соображу как компактнее организовать свой алгоритм.
Задача следующая.
Открываю файл для чтения и считываю построчно.
while () {
#проверяется тип поиска
    if ($search_type eq \'type1\') {
        #ищу строку, в соответствии с условиями поиска
        if (/regexp_type1/) { # type1
            print \'вывод отформатировнной строки\';
    }
        }
    if ($search_type eq \'type2\') {
        #ищу строку, в соответствии с условиями поиска
        if (/regexp_type2/) { # type2
            print \'вывод отформатировнной строки\';
    }
        }
    if ($search_type eq \'type3\') {
       #ищу строку, в соответствии с условиями поиска
        if (/regexp_type3/) { # type3
            print \'вывод отформатировнной строки\';
        }
    }
}

Блок  "print \'вывод отформатировнной строки\';" очень большой по своему объему и во всех 3-х случаях он одинаковый. Как это можно все скомпоновать? Подскажите в каком направлении искать решение.
Название: while, if, else - организация условий.
Отправлено: arto от 17 Октября 2006, 13:45:49
my %hash = (\'type1\' => qr(regexp_type1), ... );

while () {
  if (m|$hash{$search_type}|) { print; }
}
Название: while, if, else - организация условий.
Отправлено: sickboy от 17 Октября 2006, 15:02:01
arto
спасибо.