Forum Webscript.Ru

Программирование => Perl => Тема начата: kaska от 27 Ноября 2005, 20:31:13

Название: Счёт совпадений.
Отправлено: kaska от 27 Ноября 2005, 20:31:13
Здравствуйте, второй день сижу с женой и не могу придумать ;) Видимо жена отвлекает...

Есть переменная $name = "Павлик Вовик Костик Женечка Павлик Костя Павлик"

загвоздка: необходимо посчитать повторения и пересортировать переменную по кол-ву повторений через запятую. Т.е. в переменной 3 (три) раза втречается "Павлик", 2 (два) раза встречается "Костик", 1 (один) - "Женечка", 1 (один) - "Вовик". Таким образом переменная $name преобразуется в $sort_name = "Павлик,Костик,Вовик,Женечка".

Кто-нибудь сможет помочь?
Название: Счёт совпадений.
Отправлено: Regestor от 27 Ноября 2005, 21:30:50
kaska
Не ленись, это достаточно простая задача... которую можно решить изучив такие лольские книги как "Перл за 24 часа"

Почитай про: splite, Циклы, Массивы, Хеши....
Название: Счёт совпадений.
Отправлено: Kannabismus от 28 Ноября 2005, 04:23:37
$name = "Павлик Вовик Костик Женечка Павлик Костя Павлик";
my %hash = map { $_ => $hash{$_}++ } split(/\\s/,$name);
my $sort_name = join (\',\', sort {$hash{$b} <=> $hash{$a}} keys %hash);
Название: Счёт совпадений.
Отправлено: kaska от 28 Ноября 2005, 13:45:49
Спасибо - жена в восторге :D
Название: Счёт совпадений.
Отправлено: kaska от 28 Ноября 2005, 14:28:07
Итересно, а в интернете где-нить про Хеш можно почитать? Просто возникла потребность ограничить вывод не всех имен, а только 3 (трёх) самых-самых ;) $sort_name = "Павлик,Костик,Вовик";
Название: Счёт совпадений.
Отправлено: hanslinger от 28 Ноября 2005, 15:00:23
http://perldoc.perl.org
Название: Счёт совпадений.
Отправлено: kaska от 28 Ноября 2005, 16:06:01
Я так понимаю, что нужно всё сделать через цикл, но как в цикл помещать имена (или ключи) из хэша по отдельности?

т.е. я делаю

$i=1;
while ($i < 3) {
...
}

а что в цикле?
Название: Счёт совпадений.
Отправлено: kaska от 29 Ноября 2005, 13:57:00
А может быть это через foreach сделать? :insane:
Название: Счёт совпадений.
Отправлено: NeoNox от 29 Ноября 2005, 14:10:19
Купите книжку, хоть даже "перл за 24 часа".