in reply to How to turn off warnings in used (external) modules

If you want to catch and treat the warning and error throwing behaviors of a submodule, you can use %SIG to write your own warn or die handler, as specified in the linked documentation. Something like:

local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /recursion/};

called before you start invoking tree crawling routines will locally suppress warnings containing the word 'recursion'. This, of course, assumes that you know, for a fact, that the warning is spurious.