| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Вывести хеш хешей хешей в разные файлы |
| Автор: Suppir 3.10.2010, 21:53 |
| Доброе время суток! Есть структура следующего вида: $штат{ИТ-отдел}{Иванов}{зарплата}=7 $штат{ИТ-отдел}{Иванов}{опыт}=3 $штат{ИТ-отдел}{Петров}{зарплата}=10 $штат{ИТ-отдел}{Петров}{опыт}=5 $штат{бухгалтерия}{Сидорова}{зарплата}=8 $штат{бухгалтерия}{Сидорова}{опыт}=2 $штат{бухгалтерия}{Кузнецова}{зарплата}=12 $штат{бухгалтерия}{Кузнецова}{опыт}=3 $штат{продажи}{Зайцев}{зарплата}=8 $штат{продажи}{Зайцев}{опыт}=1 Необходимо вывести эту структуру в текстовые файлы: 1) каждый отдел выводится в отдельный файл (ИТ-отдел.txt, бухгалтерия.txt, продажи.txt) 2) необходимо выполнить сортировку по зарплате Например, файл "ИТ-отдел.txt" должен выглядеть так: Петров, зарплата - 10, опыт - 5 Иванов, зарплата - 7, опыт- 2 файл бухгалтерия.txt будет выглядеть так: Кузнецова, зарплата - 12, опыт - 3 Сидорова, зарплата - 8, опыт - 2 Подскажите, как вывести эту информацию? Добавлено через 2 минуты и 18 секунд Мне кажется, сначала нужно сделать сортировку по отделам (чтобы один раз создавать файл), а потом сортировку по зарплате. Но что-то не выходит :( |
| Автор: arto 3.10.2010, 22:28 |
| use IO::File; foreach my $dep (keys %штат) { unless (exists $штат{ $dep }->{'io'}) { $штат{ $dep }->{'io'} = new IO::File "> $dep.txt"; } foreach my $sname (keys %{ $штат{ $dep } }) { ... } } |
| Автор: Suppir 4.10.2010, 12:40 |
| arto, а какой потом дескриптор указывать для печати? print IO "..." выдает ошибку "Not a HASH reference at c:\!\3.pl line 66" а print $firm{$dep} "..." тоже вызывает ошибку |
| Автор: Suppir 4.10.2010, 13:41 |
| И еще момент - как реализовать сортировку по зарплате? |
| Автор: Suppir 4.10.2010, 14:11 |
| Все, вопросы снимаются. Спасибо! |