пятница, 29 октября 2010 г.

Непростая сортировка.

Иногда нужно отсортировать данные как числа, но сами данные не совсем числа, а сборная солянка из цифр и букв

Допустим у вас есть такие данные: 90A,89B,90C,102A,89A ;) их нужно отсортировать по возрастанию - на самом деле - код очень простой:



use Data::Dumper;

sub exsortproc
{
return $a<=>$b if ($a != $b) ;
return $a cmp $b;
};


my @data=('90A','89B','90C','102A','89A');
my @out;
@out = sort exsortproc @data;

die Dumper(\@out);


Output:

$VAR1 = [
'89A',
'89B',
'90A',
'90C',
'102A'
];

Все дело в том что если нужно перл кастует скаляр '90A' к числу 90.

Успехов вам и побольше 90C :)

Комментариев нет:

Отправить комментарий