['-6h0m','+11h39m',+1h7m','-12h8m']
####
['+11h39m','+1h7m','-6h0m','-12h8m']
####
###############
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;
}