Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: useful depth of sub routines

by davido (Archbishop)
on May 27, 2013 at 19:11 UTC ( #1035453=note: print w/ replies, xml ) Need Help??


in reply to useful depth of sub routines

This would be fairly trivial to test yourself. But just some tips: There is some overhead per subroutine call; each call pushes a lexical scope onto the call stack, to be popped off later. That's not free, but unless you're working inside of tight loops it's usually not something you need to care about. Also, Perl does support recursive subroutines, and only starts spitting out warnings when your recursion reaches 100 levels deep. Recursion isn't special in Perl (ie, there's no tail-call optimization), so each recursive call is another push onto the call stack. That should give you some reassurance that even 100 levels deep is possible.

Remember, the deep recursion warning is just a warning, intended to clue developers in to the fact that they might have some runaway recursion. Even that warning can be silenced or ignored if you're ok with being 100 levels deep in sub calls. Perl doesn't arbitrarily limit you. You're free to use all available memory on the subroutine call stack if you wish. You're unlikely to come up with a reasonable design that takes you anywhere close to that though.


Dave


Comment on Re: useful depth of sub routines

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1035453]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2014-11-22 10:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (121 votes), past polls