############### sub sort_deltas { ############### my @deltas = @{ shift() }; my $delta; my %delta_tmp; for $delta (@deltas) { my $hm = substr($delta,1); my @tmp = split /h/, $hm; my $h = $tmp[0]; @tmp = split /m/, $tmp[1]; my $m = $tmp[0]; my $minutes = $h * 60. + $m; my $signum = substr($delta,0,1); if ($signum eq '-') { $minutes = - $minutes; } $delta_tmp{$minutes} = $delta; } my $tmp; my @tmp_abs; my @back; push @tmp_abs, sort numerically keys %delta_tmp; for $tmp (@tmp_abs) { push @back, $delta_tmp{$tmp}; } return reverse @back; }