Forum Webscript.Ru

Программирование => Perl => Тема начата: Error202 от 19 Августа 2008, 14:27:28

Название: Чтение строк из файла с условием
Отправлено: Error202 от 19 Августа 2008, 14:27:28
Есть файл:
==== cut ====
1111|Иванов С.А.|Инженер
1112|Сидоров С.А.|Инженер
1113|Петров Е.Е.|Инженер
1141|Гришин К.Е.|Технолог
1151|Сергеев С.В.|Инженер
1152|Швыдкин Р.А.|Технолог
1161|Гаврилин В.С.|Инженер
1162|Худаков С.И.|Инженер
1163|Смирнов В.В.|Печатник
==== cut ====

Как я могу из такого файла быстро вытащить все записи,
первая часть которых более 1150 и менее 1162?

Или только перебором каждой строки типа:

foreach ()
{
 @tmp=split(/\\|/, $_);
 if (($tmp[0]>=1150)and($tmp[0]<=1162))
  {
    Запись прошла
  };
}
Название: Чтение строк из файла с условием
Отправлено: arto от 20 Августа 2008, 00:04:09
grep { $a = (split "\\\\|")[0]-1150; $a > 0 && $a < 12 }
Название: Чтение строк из файла с условием
Отправлено: Yaroslav от 30 Августа 2008, 15:01:03
если использовать кавычки, то будет быстее
@tmp=split("|");
Название: Чтение строк из файла с условием
Отправлено: arto от 01 Сентября 2008, 11:04:35
у вас неверное выражение