[Moscow.pm] transform sort function to Schwartzian Transform ??

Ilya Chesnokov chesnokov.ilya на gmail.com
Пт Сен 9 15:00:06 PDT 2011


2011/9/10 Ilya Chesnokov <chesnokov.ilya на gmail.com>:
> 9 сентября 2011 г. 22:41 пользователь Nikolay Mishin <mi на ya.ru> написал:
>> Я бы еще оптимизнул на определении хеша с месяцами
>>
>> my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;
>> my %months;
>> foreach my $index ( 0 .. $#month ) { $months{ $month[$index] } = $index }
>
> Или, например, так:
>
> my %months;
> @months{ qw/ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec / } = (1)x12;

Пардон, там же индексы, а не единицы ))
Тогда так:

my %months;
@months{ qw/ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec / } = 0..11;

И кстати, по поводу имён @month и %months - тут наоборот, для массива
лучше использовать множественное число, а для хеша - единственное. И
хешу больше подошло бы имя %month_index, т.е. обращение к элементу
будет выглядеть, например, как $month_index{Jan} - т.е. мы обращаемся
к индексу месяца 'Jan'.

> Нет, выносить регулярное выражение в константы недопустимо

С этим, кстати, тоже не согласен. Не только допустимо, но и очень
удобно. Например, в модуле Regexp::Common полно готовых регекспов, к
которым можно обратиться по имени. А чем мы хуже? ))

-- 
Ilya Chesnokov


Подробная информация о списке рассылки Moscow-pm