http://qs321.pair.com?node_id=11137443


in reply to Re^5: Is it safe to use external strings for regexes? (infinite loops)
in thread Is it safe to use external strings for regexes?

hippo messaged me that

> FYI, the default recursion limit is "only" 100.

I knew, but when in tested in the debugger I only saw

1000 levels deep in subroutine calls!

It seems that the debugger has a hard breakpoint at 1000 and doesn't show the normal "deep recursion" warning.

Tested with 5.32 on Win.

FWIW:

use strict; use warnings; our $limit =1050; our $l=0; sub tst { $l++; #warn "level: $l" unless $l%50; die "LIMIT $limit reached" if $l>$limit; tst(); } tst();
in debugger
D:\tmp\pm>perl -d tst_recursion.pl Loading DB routines from perl5db.pl version 1.57 Editor support available. Enter h or 'h h' for help, or 'perldoc perldebug' for more help. main::(tst_recursion.pl:4): our $limit =1050; DB<1> c main::tst(tst_recursion.pl:9): $l++; 1000 levels deep in subroutine calls! DB<1>

normal run

D:\tmp\pm>perl tst_recursion.pl Deep recursion on subroutine "main::tst" at tst_recursion.pl line 12. LIMIT 1050 reached at tst_recursion.pl line 11. D:\tmp\pm>

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery