Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Создание и перебор хеша массивов |
Автор: Suppir 22.3.2011, 22:13 |
1. Как создать хеш массивов вида $животные{домашние} = ('корова', 'собака', 'кошка') $животные{дикие} = ('тигр', 'олень', 'бобер') сразу всех животных я не знаю. Есть переменная 'домашние' и какое-нибудь животное, например 'корова'. Нужно а) если в хеше %животные нет ключа 'домашние', то создать такой ключ. Значение для этого ключа = массиву из одного элемента 'корова' б) если в хеше %животные есть ключ 'домашние', то добавить 'корову' в конец существующего массива. 2. Как сделать перебор по полученной структуре? Например, мне нужно вывести в файл: домашние = корова, собака, кошка дикие = тигр, олень, бобер 3) как сделать перебор по структуре с сортировкой по количеству элементам массива? Допустим, вывести в первую очередь ключи, к которым принадлежать массивы с наибольшим количеством элементов. perldsc читал. Но не совсем понял систему ссылок; нужны примеры. |
Автор: vivu 22.3.2011, 22:33 | ||||
1 Создание
2 Перебор
|
Автор: odmink0 23.3.2011, 02:01 | ||
vivu, вторая часть пойдёт, а первую можно и проще сделать:
- т.е. безо всяких циклов. |
Автор: vivu 23.3.2011, 08:52 |
Проще не значит понятнее. Я бы, честно говоря, для начинающих и вторую часть расписал, чтобы понятнее было. |
Автор: Suppir 23.3.2011, 09:31 |
odmink0, vivu все правильно написал, ведь по условиям задачи мы не имеем сразу весь массив животных (имеем только одно животное), поэтому нужно использовать push. Остался нерешенным вопрос N 3 - вывод хеша массивов с сортировкой по количеству элементов массива. |
Автор: arto 23.3.2011, 12:03 |
perldoc -f sort |
Автор: vivu 23.3.2011, 23:12 | ||
3 Перебор с сортировкой
Suppir, расскажите зачем вам это? Лабы? |
Автор: Suppir 24.3.2011, 13:14 | ||
Спасибо! Еще вопрос. Есть хеш хешей, одним из элементов которого является массив:
|
Автор: ming 24.3.2011, 21:01 | ||||
во-первых здесь нужно использовать анонимный массив, а не список ( ... ) => [ ... ] *вы не читаете того, что вам пишут выше?* во-вторых, можно так
|
Автор: Suppir 24.3.2011, 21:24 |
Спасибо, я разобрался более-менее. Не получилось сегодня днем отписаться, потому что касперский определял вирус при заходе на этот форум. |