in reply to how to build directory

I would Form a HashofList (HoL) :-
my %tree_Hash = ( 1=> [ 1, 2, 3 ], 2=> [ 4 ], 3=> [ 5 ], 4=> [ 6, 7 ], 8=> [ 8, 9 ], );
Values are maintained as a Key and Keys become pushed as values under each key. (i,e) the level as you want.

Replies are listed 'Best First'.
Re^2: how to build directory
by Skeeve (Parson) on May 22, 2007 at 09:52 UTC

    Didn't you mean:

    my %tree_Hash = ( 1=> { 2 => { 4=> { 6 => undef, 7 => undef, }, }, 3 => { 5 => undef, }, } 8=> { 9 => undef, }, );

    This can be build programatically from the existing hash.

    But I'm not sure what exactly the OP wants.


    s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
    +.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e
      Yes i meant this only :). I have been trying to do this for quite sometime but no success. Can you give me some hints on how to do this?
        Based on Skeeve's hash of hash structure:
        for my $path (keys %tree_Hash) { # mkdir $path my $sub = $tree_Hash{$path}; if (defined $sub and ref $sub) { for my $spath (%$sub) { # mkdir $sub/$spath my $subsubpath = $sub->{$spath}; .... and so on } } }
        The code above is a cumbersome, and become more tedious as you have more complex structure, but since you asked for hint :-) And here's another hint, if you feel a bit brave you can implement it with recursive subroutine. The last hint, the one I recommend the most, is to transform %tree_Hash into some array of directories and ask File::Path to create the directory structure for you.

        Now, please do your part a little bit. Feel free to comeback and ask again if you find some problem. Good luck, megaurav2002.


        Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!