@id = sort { $lid->{split(/=/, $a)} cmp $lid->{split(/=/, $b)} } @id; #### @id = sort { $lid->{(split(/=/, $a))[0]} cmp $lid->{(split(/=/, $b))[0]} } @id; #### my %temp = map { $_ => (split(/=/, $_, 2))[0] } @id; @id = sort { $lid->{$temp{$a}} cmp $lid->{$temp{$b}} } @id;