Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
hogart
Зарегистрирован: 04.05.2006 Сообщения: 1
|
Добавлено: Чт Май 04 2006 16:09 Заголовок сообщения: [perl] сортировка списка |
|
|
Всем добрый день.
Есть список след. вида:
а 1 бб еее
в 3 9 ееге
г 10 15 еегег
б 10 44 еггг
....
нужно отсортировать список по первому элементу в строке, т.е.:
а 1 бб еее
б 10 44 еггг
в 3 9 ееге
г 10 15 еегег
....
пробовал с помощью sort в сочетание со split:
Код: |
foreach (@a) {
($name,$strand,$start,$end) = split /\s/, $_;
$name{$_}=$name;
push @s, $name;
}
print sort {$name{$a} cmp $name{$a}} @a;
|
но что-то это не работает.. как еще можно это сделать? |
|
Вернуться к началу |
|
|
Aragaer
Зарегистрирован: 28.03.2005 Сообщения: 164
|
Добавлено: Вс Май 07 2006 21:25 Заголовок сообщения: |
|
|
Код: | $a = sort {($p,$q) = ("$a:$b"=~/(\s+).*?:(\s+)); $p cmp $q} @a; | или что-то в этом духе. _________________ Open your eyes.
And Awaken. |
|
Вернуться к началу |
|
|
melco
Зарегистрирован: 14.05.2006 Сообщения: 3
|
Добавлено: Вс Май 14 2006 15:17 Заголовок сообщения: |
|
|
Господи, зачем так все усложнять
Код: | #!/usr/bin/perl -w
@list = <STDIN>;
print "============================================\n";
print sort(@list);
|
Чем не устраивает такая реализация?
P.S. После ввода элементов массива через enter нужно закончить создание последнего с помощью сочетания Ctrl+d
Вот результат:
Код: | a 1 bb eee
c 3 9 fff
d 4 15 ala
b 2 66 tyt
============================================
a 1 bb eee
b 2 66 tyt
c 3 9 fff
d 4 15 ala
|
|
|
Вернуться к началу |
|
|
|