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


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

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. :-)