Всем доброго утра!
Есть такой код:
function plural(n: integer; f1,f2,f3: string): string;
begin
case n mod 100 of { последние две цифры или одна, если число однозначное }
1, 21, 31, 41, 51, 61, 71, 81, 91 : plural := f1; { день }
2..4, 22..24, 32..34, 42..44,
52..54, 62..64, 72..74, 82..84, 92..94 : plural := f2; { дня }
0, 5..9, 10..20, 25..30,
35..40, 45..50, 55..60, 65..70,
75..80, 85..90, 95, 96, 97, 98, 99 : plural := f3; { дней }
end
end;
var i : integer;
begin
for i := 0 to 260 do writeln(i, ' ', plural(i,'день','дня','дней'));
for i := 0 to 180 do writeln(i, ' ', plural(i,'копейка','копейки','копеек'));
end.
Как в perl'e проверить вхождение строки в диапазон? Регулярные выражения имхо - накладно. grep'aть массив (x..y) тоже. Использовать для такой простой задачи сторонние модули - перебор. Что посоветуете?