Forum Webscript.Ru

Программирование => Perl => Тема начата: andrez от 06 Июля 2004, 11:54:24

Название: Как удалить одинаковые значения массива?
Отправлено: andrez от 06 Июля 2004, 11:54:24
Сортирую массив, нечто вроде: a,b,c,d,a,a,d,d  и.т.п

@Iname=sort{$a cmp $b} @Iname;

резултат получается a,a,a,b,c,d,d,d итого около 50000 элемнтов, как можно удалить одинаковые значения?
Название: Как удалить одинаковые значения массива?
Отправлено: NeoNox от 06 Июля 2004, 11:57:45
@Iname= grep{!$_{$_}++} @Iname;
Название: Как удалить одинаковые значения массива?
Отправлено: andrez от 06 Июля 2004, 12:00:27
Большое спасибо
Название: Как удалить одинаковые значения массива?
Отправлено: Troum от 06 Июля 2004, 19:22:43
Цитировать
NeoNox:
{!$_{$_}++}


Можно ли попросить "разжевать" это условие?
Название: Как удалить одинаковые значения массива?
Отправлено: NeoNox от 07 Июля 2004, 14:08:40
Можно. Создается хеш и проверяется, если хеша с таким именем нет - помещаем значение в массив.
Название: Как удалить одинаковые значения массива?
Отправлено: Troum от 07 Июля 2004, 17:56:34
Хитро

Спасибо