Forum Webscript.Ru
Программирование => Perl => Тема начата: 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-х случаях он одинаковый. Как это можно все скомпоновать? Подскажите в каком направлении искать решение.
-
my %hash = (\'type1\' => qr(regexp_type1), ... );
while () {
if (m|$hash{$search_type}|) { print; }
}
-
arto
спасибо.