The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Сортировка хэшей на перле"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Сортировка хэшей на перле"
Сообщение от Vasily emailИскать по авторуВ закладки on 18-Ноя-02, 21:01  (MSK)
привет всем !
мне необходимо создать ряд директорий и поддиректорий
например:
$my_directory = "/home/my/dir";
$my_subdirectory = $my_directory."/subdir";
и т.д.
если я  это всё загоняю в хэш
%my_dirs = (
     "my_directory" => "/home/my/dir",
     "my_subdirectory" => "/home/my/dir/subdir",
     "my_subsubdirectory" => "/home/my/dir/subdir/subdir2"
);
а потом делаю
foreach(keys %my_dirs) {
     mkdir $my_dirs{$_} || die "Can't create $_: $!\n" if( ! -d $my_dir{$_} );
}
то у меня порядок хэша получается совершенно левый и например первой  пытается создасться директория my_subdirectory, а т.к. директории my_directory ещё нету, то оно даже и не ругается а просто молча ничё не делает. Короче, вопрос в том, как отсортировать хэш таким образом, как я его определял ?

василий

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Сортировка хэшей на перле"
Сообщение от bass Искать по авторуВ закладки on 19-Ноя-02, 05:08  (MSK)
>привет всем !
>мне необходимо создать ряд директорий и поддиректорий
>например:
>$my_directory = "/home/my/dir";
>$my_subdirectory = $my_directory."/subdir";
>и т.д.
>если я  это всё загоняю в хэш
>%my_dirs = (
>     "my_directory" => "/home/my/dir",
>     "my_subdirectory" => "/home/my/dir/subdir",
>     "my_subsubdirectory" => "/home/my/dir/subdir/subdir2"
>);
>а потом делаю
>foreach(keys %my_dirs) {


foreach(sort keys %my_dirs) { ?


>     mkdir $my_dirs{$_} || die "Can't create $_:
>$!\n" if( ! -d $my_dir{$_} );
>}
>то у меня порядок хэша получается совершенно левый и например первой  
>пытается создасться директория my_subdirectory, а т.к. директории my_directory ещё нету, то
>оно даже и не ругается а просто молча ничё не делает.
>Короче, вопрос в том, как отсортировать хэш таким образом, как я
>его определял ?
>
>василий


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Сортировка хэшей на перле"
Сообщение от ivi Искать по авторуВ закладки on 19-Ноя-02, 07:32  (MSK)
>Короче, вопрос в том, как отсортировать хэш таким образом, как я его определял ?

Никак.
Элементы хэша извлекаются не в том порядке в каком они заносятся. Perl хранит элементы, используя свой собственный внутренний алгоритм, оптимизирующий затраты памяти и обеспечивающий легкость доступа.

Для сортировки по алфавиту используется sort.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Сортировка хэшей на перле"
Сообщение от Владимир emailИскать по авторуВ закладки on 19-Ноя-02, 11:05  (MSK)
Используй модуль Tie::IxHash

use Tie::IxHash;
tie %HASH, "Tie::IxHash";
# Операции с хэшем %HASH
@keys = keys %HASH;         # @keys отсортирован в порядке вставки

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Сортировка хэшей на перле"
Сообщение от Vasily emailИскать по авторуВ закладки on 19-Ноя-02, 15:54  (MSK)
>Используй модуль Tie::IxHash
>
>use Tie::IxHash;
>tie %HASH, "Tie::IxHash";
># Операции с хэшем %HASH
>@keys = keys %HASH;        
># @keys отсортирован в порядке вставки

Рулез !
Спасибо огромное....

помогло

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру