История изменений
Исправление DRVTiny, (текущая версия) :
Вот прямо выцепил из кода модуля:
sub __get_timer_settings {
my $r=ref($_[0]);
my $dflt=$_[1];
return unless
my @afterANDperiod =
($r eq 'ARRAY')
? @{$_[0]}
: $r
? (return)
: split /:/ => $_[0];
return unless @afterANDperiod and +@afterANDperiod<=2;
for my $c (0,1) {
for ($afterANDperiod[$c]) {
return if defined and $_ and (!looks_like_number($_) or $_<0);
( (!(defined and length) or ($c and !$_) ) and $_=$dflt->[$c] ) or $_+=0
}
}
\@afterANDperiod;
}
Это что-то из серии «за что мне Perl не нравится».
Хотя проверка достаточно сложная: на входе должен быть либо [AFTER, PERIOD], причём если PERIOD==0, то берётся default, либо «AFTER:PERIOD» (и если чего-то нет - тоже берётся default), но, гм, по-моему на perl это реализуется наихудшим образом из возможных.
P.S. И да, Mojo::IOLoop->recurring - полное овно, раз он не поддерживает After. Почему AnyEvent поддерживает, а recurring в типа прогрессивном Mojo - нет???
Исправление DRVTiny, :
Вот прямо выцепил из кода модуля:
sub __get_timer_settings {
my $r=ref($_[0]);
my $dflt=$_[1];
return unless
my @afterANDperiod =
($r eq 'ARRAY')
? @{$_[0]}
: $r
? (return)
: split /:/ => $_[0];
return unless @afterANDperiod and +@afterANDperiod<=2;
for my $c (0,1) {
for ($afterANDperiod[$c]) {
return if defined and $_ and (!looks_like_number($_) or $_<0);
( (!(defined and length) or ($c and !$_) ) and $_=$dflt->[$c] ) or $_+=0
}
}
\@afterANDperiod;
}
Это что-то из серии «за что мне Perl не нравится».
Хотя проверка достаточно сложная: на входе должен быть либо [AFTER, PERIOD], причём если PERIOD==0, то берётся default, либо «AFTER:PERIOD» (и если чего-то нет - тоже берётся default), но, гм, по-моему на perl это реализуется наихудшим образом из возможных.
Исходная версия DRVTiny, :
Вот прямо выцепил из кода модуля:
sub __get_timer_settings {
my $r=ref($_[0]);
my $dflt=$_[1];
return unless
my @afterANDperiod =
($r eq 'ARRAY')
? @{$_[0]}
: $r
? (return)
: split /:/ => $_[0];
return unless @afterANDperiod and +@afterANDperiod<=2;
for my $c (0,1) {
for ($afterANDperiod[$c]) {
return if defined and $_ and (!looks_like_number($_) or $_<0);
( (!(defined and length) or ($c and !$_) ) and $_=$dflt->[$c] ) or $_+=0
}
}
\@afterANDperiod;
}
Это что-то из серии «за что мне Perl не нравится».
Хотя проверка достаточно сложная: на входе должен быть либо [AFTER, PERIOD], причём если PERIOD==0, то берётся default, либо «AFTER:PERIOD» (и если чего-то нет - тоже берётся default), но, гм, по-моему на perl это реализуется наихудшим образом из возможных.