![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
XeLpeR |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.9.2008 Репутация: нет Всего: нет |
Доброго времени суток ! У меня назрел очередной вопросик, пожалуйста помогите разобраться
![]() Дан хеш массив:
передаем его в тимлейт и используем следующим образом:
В результате элементы будут выводиться отсортированные по ключу, но в лексикографическом порядке, а необходимо чтобы они сортировались как числа ( или хотябы выводились в том же порядке, что и в начальном хеше). Это сообщение отредактировал(а) XeLpeR - 22.10.2008, 22:39 |
||||
|
|||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 4 Всего: 49 |
XeLpeR, могу предложить
Для обычных хешей это невозможно впринципе, т.к. внутри хэша данные хранятся всегда в разном порядке. P.S. предложенный вариант сам не проверял, т.к. TT не пользуюсь, взял из документации ![]() Это сообщение отредактировал(а) ginnie - 23.10.2008, 09:50 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
XeLpeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.9.2008 Репутация: нет Всего: нет |
Ура, ура, ура !!!
Огромное спсибо, рааботает ! ![]() |
|||
|
||||
Tsaregradskiy |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 28.11.2008 Репутация: нет Всего: нет |
Скажите, а если у меня есть следующий хэш
my %fields = ( 'first_name' => { 'name' => 'Имя', 'order' => 1, }, 'last_name' => { 'name' => 'Фамилия', 'order' => 2, }, 'email' => { 'name' => 'E-Mail', 'order' => 3, }, ); где поле 'order' означает порядок отображения в Template Toolkit. Как мне отсортировать хэш по этому полю? Добавлено через 1 минуту и 45 секунд
А не поможет ли использование модуля Tie::IxHash? Но пока использовать его мне не удалось. |
||||
|
|||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 4 Всего: 49 |
Tsaregradskiy, а не проще использовать другую структуру?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
Tsaregradskiy |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 28.11.2008 Репутация: нет Всего: нет |
Нет, не проще. Во-первых, есть уже куча написанного кода для моей структуры. Во-вторых, это я сокращенно написал, на самом деле там такая структура: 'first_name' => { 'name' => 'Имя', 'type' => 'text', 'size' => '40', 'maxlength' => '', 'value' => '', 'equal' => '', 'mask' => '', 'accept' => 'true', 'marked' => 0, 'order' => 1, }, и т.п. Пока решил проблему следующим образом: [% FOREACH key IN fields_order.nsort %] [% fields.$key.name %] и т.д. [% END %] где fields_order хэш структуры типа { 'first_name' => 1, 'last_name' => 2, и т.д. } Номера беруться на основании поля order хэша fields. З.Ы. Вот как всё мрачно: http://www.perlmonks.org/?node_id=651173 |
||||
|
|||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 4 Всего: 49 |
Tsaregradskiy, Вы можете мне объяснить, зачем нужно создавать хэш fields_order и затем его сортировать в шаблоне? Попроще никак нельзя сделать?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |