in reply to group based array sort

bageler,
I am pretty sure this is easier than it sounds. You have an AoH and want to sort it based off one of the hash values. Try the following code and see if it does what you want:
@list = sort { $a->{level} <=> $b->{level} } @list; # Print code goes here
Cheers - L~R

Update: After re-reading your problem I realized the issue is not in the sorting but in the printing, which I conveniently left out. Since a great solution has already been provided below, I will only point to my iterative solution by using a stack.

Replies are listed 'Best First'.
Re: Re: group based array sort
by benn (Vicar) on Feb 19, 2004 at 20:22 UTC
    bageler seems to be looking for something more complicated that that, I'm afraid - that would simply give
    foo ->bar ->narf -->trof -->etc.
    I don't know if this is possible without recursion...being lazy, I'd personally use a recursive "GetChildren($id)" routine which greps for the parent $id and pushes the returned list onto itself - terribly inefficient (as you'd be grepping the list for every element), but easier to code :)

    Cheers,
    Ben.