Есть, например, такие задачи: 1) нужно брать поля для SQL-вставки из ну очень длинного списка. Если формировать всю команду INSERT одним залпом - будет фейл. Формирую, стало быть, частями, разбивая исходный список на удобоваримые «порции». Кстати, такую же вставку можно было бы делать и вообще распараллелено
2) есть у меня список, который нужно обрабатывать как «упорядоченный хеш», т.е. что-то вроде
["Great"=>"Britain", "Northern"=>"Ireland", "Patrice"=>"Lumumba", "Communism"=>"Young of world"]
Но тут у меня на пути встаёт пресловутый TMTOWTDI. А именно то, что на Perl-е совсем не хочется писать нормальные циклы, а хочется каких-нибудь лютых извращений наподобие такого:
@a=split //,do { open my $fh, q(/etc/fstab); join ("",map { chomp; $_ } <$fh>)};
say
join("\n",
map {
join("",grep defined $_, @a[$_*20..($_+1)*20])
} 0..int(@a/20-1)
);
В общем... фундаментальный вопрос: как правильно, а главное - эстетично (ведь Perl - это прежде всего язык эстетов) решить задачу обработки массива по частям, не прибегая к дурацким вычислениям и уж упаси Боже - к мелкобуржуазным циклам for(;;)?
На что я намекаю... В «примитивном» BASH есть, например, такая вот архиполезная конструкция:
$ echo {0..115..20}
0 20 40 60 80 100
Неужели на Perl'е это без чудесной арифметики никак не реализуется?
Спасибо! :)