[Moscow.pm] transform sort function to Schwartzian Transform ??
Alexandr Gomoliako
zzz на zzz.org.ua
Пн Сен 12 07:59:43 PDT 2011
On 9/12/11, Denis Evdokimov <evdokimov.denis at gmail.com> wrote:
> Функция-парсер, которая содержит одну регулярку.
> Можно, но зачем. Почему не воспринимать регулярку, как функцию?
> Чем отличается
> my($aa, $bb, $cc) = $str =~ RegExp_parse_bla_bla_bla;
> от
> my($aa, $bb, $cc) = parse_bla_bla_bla($str);
Ничем. Оба нечитабельно. Естественно не нужно выносить одну регулярку
в фукнцию, но и в константу тоже. Пишите сразу читабельно:
my ($aa, $bb, $cc) = $str =~ /(aa)(bb)(cc)/;
Выносите в парсер все, что касается парсера.
Регулярное выражение не имеет смысла, если оно не в контексте, как и условия.
Т.е. вот как-то так:
sub foo {
...
my ($aa, $bb, $cc) = $str =~ /(aa)(bb)(cc)/;
# other parser-related stuff ...
return $your_fully_parsed_data_structure;
}
> С мой мочки зрения - ничем.
> Только $str =~ RegExp_parse_bla_bla_bla несколько быстрее.
Вот не надо только про быстрее.
Высокая производительность либо нужна, либо нет. Если нет, то не надо
портить читабельность, если да (когда да), то перепишите в XS.
Все та же premature optimization.
Подробная информация о списке рассылки Moscow-pm