http://qs1969.pair.com?node_id=66672


in reply to Re (tilly) 1: Recursive generation of a sorted list from a hash
in thread Recursive generation of a sorted list from a hash

Thanks.

It doesn't handle circular references..in fact, I think that is why it fails at the moment. I'm going to add some logic in there to see if a node has already been processed, and post the changes.

  • Comment on Re: Re (tilly) 1: Recursive generation of a sorted list from a hash

Replies are listed 'Best First'.
Re: Re: Re (tilly) 1: Recursive generation of a sorted list from a hash
by hawson (Monk) on Mar 23, 2001 at 22:38 UTC
    A fairly simple change to my script fixed the problem. In each call to &Recurse I additionally pass a @stack list. This list contains all of the 'parent' nodes in the call tree. So when the function runs, it checks to see if the node is present in @stack, then I know there is circular reference.

    So, the inital invocation of &Recurse becomes: &Recurse($_,()), and subsequent calls (the truly recursive ones) turn into: &Recurse($node,@stack,$node).

    This works, although tilly has a much more compact solution. :-)