30 июня 2016 г., 14:11 пользователь Alexey Shrub <[email protected]> написал: > On Чт, июн 30, 2016 в 2:01 , Ilya Chesnokov <[email protected]> > wrote: >> >> Это сделано намеренно, чтобы избежать проблем при сравнивании, >> например, 29 дней и 1 месяца. > > > А где связь между этими проблемами и перегрузкой операторов? Разве если эту > операцию делать отдельной функцией эти проблемы решаются?
Вы ходили по ссылке? Там все написано. > В любом случае > надо помнить об этих проблемах, это особенность типа Это особенность сравнения интервалов времени. О ней надо помнить при работе с любыми модулями. >> perl -MDateTime -E 'my $d1 = DateTime->now; my $dur1 = >> DateTime::Duration->new(years => 1); $d1+= $dur1; say $d1->ymd' > > > Можно всё, а нужно Минутку! Сначала вы говорили, что так нельзя ;) > максимально высокоуровнево, например с Class::Date: > perl -E 'use Class::Date qw(now); my $d1=now; $d1 += "1Y"; say $d1->ymd' > 2017/06/30 > кода меньше, читаемость выше Выбор за вами. Просто DateTime - наиболее популярный модуль (посмотрите хотя бы на список обратных зависимостей), и читать код с ним большинству будет наверняка легче, чем с другими поделками. С другой стороны, он пытается охватить все возможные варианты, и такой комплексный подход иногда может быть не нужен. В любом случае рекомендую к просмотру презентацию Дейва Рольски о проблемах исчисления времени: https://www.youtube.com/watch?v=nusC1TnwOlg > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org -- Best regards, Ilya Chesnokov -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
