in reply to Questions about Recursion and "Extract your transversal", by chromatic

Sorry i'm not clear enough on how leaks work. What should i read?

<best cartoon voice>boy-I-got-a-copy-paste-a-for-a-youu :D

Tutorials: Variable Scoping in Perl: the basics, Coping with Scoping , Mini-Tutorial: Perl's Memory Management, Lexical scoping like a fox, Read this if you want to cut your development time in half!, Closure on Closures , perlref#Circular References, Memory leaks and circular references, Circular references and Garbage collection., make perl release memory, about memory management , Re^3: Scope of lexical variables in the main script

  • Comment on Re: Questions about Recursion and "Extract your transversal", by chromatic

Replies are listed 'Best First'.
Re^2: Questions about Recursion and "Extract your transversal", by chromatic
by mascip (Pilgrim) on Jun 07, 2013 at 07:56 UTC

    Thank you. Now i understand the 2 sources of circularity in the original solution. With my solution they would be gone, as we would be using named subroutines instead of references to a subroutine. Thus, using get_all_text_in() in the hash won't create any leak.

    I can now add in the list of pros and cons above:

    • + no risk of inducing a memory leak

    I guess here that personal preferences will differ.Personally i would go for the "named subroutines" solution, because i can spot recursion errors more easily than memory leaks. And because i like simple logic.

    I am interested to hear people's reasons for preferring one or the other.

      In fact, the solution with __SUB__ could use a named subroutine, in which case there's no more memory leak risk. Is that right?

      We are then left with the pros and cons that i outlined in my first message. And i don't know which i would prefer.