![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Logo |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Самый простой и в тоже время оптимальный способ - просто хранить в паре ключ/значение ссылку на следующую пару, в ней - еще на следующую, и т.д.
Читайте внимательней вопрос. На CPAN'е полно модулей, это реализующих, да и свой написать не проблема. Вопрос был как его добавить в Perl, что бы конструкция вида
Возвращала нужный хеш. Как это сделать на CPAN я не нашел. |
||||||
|
|||||||
| TP@MB@Y |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 18.12.2004 Где: Москва Репутация: нет Всего: 4 |
Вы поймите, что хэши - это одна из составляющих фундамента перла. Вы хотите изменить поведение хэшей... Вы уже подумали как это в целом отразится на вашей системе? На подсистемах? Прошу пояснить, чем Вам не угодил вариант использования специального класса? |
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Да нет там никакой системы, подсистемы, я здесь использую Perl для того, для чего он предназначен - написание простых скриптов.
Отдельный tied hash, создаваемый через tie или спец функцию плох тем, что нужна довольно большая hash структура со вложенными хэшами, которые тоже должны быть упорядочены. Да и не перловый вовсе синтаксис уже получается. Добавлено через 1 минуту и 36 секунд
Ничего не имею против включения в области видимости пакета или лексической области видимости. |
|||
|
||||
| TP@MB@Y |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 18.12.2004 Где: Москва Репутация: нет Всего: 4 |
Logo, если вы пишите "простые" скрипты, то используйте простые решения (3 из них я уже перечислил). То что вы задумали - это совсем не просто и даже опасно
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Е-мое:) Ничего "опасного" тут нет. Если бы подходили куча классов и пр. сложный, но надежный код, я бы наверно использовал Java, а не Perl.
Добавлено через 5 минут и 57 секунд В Perl есть оператор tie, который реализует подобные вещи, есть и готовые классы (напр Tie::InsertOrderHash) на CPAN. Плохо тем, что сложную структуру со вложенными хешами, такую как
Через Tie не сделать. Собственно в этом и был вопрос, все есть в первом сообщении. Pfailed во втором предложил самый простой способ реализовать, не совсем то, но похожее. |
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Что интересно, ни один из языков, предназначенных для написания command line скриптов (кроме perl, ruby, python), так же не поддерживают порядок пар в HashMap, создаваемых по умолчанию.
perl6 Rakudo поддерживает, но он (возможно пока) мало подходит для подобных целей, поскольку запускается целую секунду. Только JavaScript и ActionScript. Это сообщение отредактировал(а) Logo - 1.8.2012, 21:03 |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
php поддерживает
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Но он тоже мало подходит для консольного скриптинга... |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |