![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
loginn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.12.2010 Репутация: нет Всего: нет |
Значит, вот пример. Запустите, посмотрите вывод. Проблема в том, что когда сортирую по возрастанию по второму столбцу, часть значений первого снова перемешивается.
#!/usr/bin/perl -w @ip=(["1.1.1.1",363],["4.4.4.4",53],["7.7.7.7",1234],["2.2.2.2",892],["3.3.3.3",743],["1.1.3.1",201],["2.2.2.2",645],["5.5.5.5",48],["1.1.1.1",270],["2.2.2.$ print "Before any sort:\n"; for ($i=0; $i<15; $i++){ print " ".$ip[$i][0]." - ".$ip[$i][1]."\n"; } print "After IP sort:\n"; @ip = sort {$a->[0] cmp $b->[0]} @ip; for ($i=0; $i<15; $i++){ print " ".$ip[$i][0]." - ".$ip[$i][1]."\n"; } print "After Time sort:\n"; @ip = sort {$a->[1] <=> $b->[1]} @ip; for ($i=0; $i<15; $i++){ print " ".$ip[$i][0]." - ".$ip[$i][1]."\n"; } НО МНЕ НУЖНО, ЧТОБЫ КОНЕЧНЫЙ РЕЗУЛЬТАТ БЫЛ ТАКИМ: 1.1.1.1 - 3 1.1.1.1 - 270 1.1.1.1 - 363 1.1.2.1 - 222 1.1.3.1 - 201 10.1.1.1 - 567 10.1.3.1 - 567 2.2.2.2 - 645 2.2.2.2 - 892 2.2.2.2 - 4567 3.3.3.3 - 743 4.4.4.4 - 53 5.5.5.5 - 48 5.5.5.5 - 555 7.7.7.7 - 1234 Т.Е. ЧТОБЫ СОРТИРОВКА ПО ВТОРОМУ СТОЛБЦУ ВЫПОЛНЯЛАСЬ ПО ГРУППАМ ПОВТОРЯЮЩИХСЯ IP АДРЕСОВ ПЕРВОГО СТОЛБЦА И НЕ ПЕРЕМЕШИВАЛА ЭТИ IP. |
|||
|
||||
alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
Попробуйте сначала сделать time sort а потом ip sort.
|
|||
|
||||
loginn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.12.2010 Репутация: нет Всего: нет |
Ха, получилось что хотел. Спасибо Вам большое.
Но почему, если вначале сделать по IP, а потом по времени - то IP начинают смешиваться? Потому что значения времени уникальны, а некоторые IP повторяются, поэтому? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |