尽管在某些情况下我可能希望在我的代码中允许深度递归,但我希望能够在某些情况下(例如在测试时)禁用它。
我知道在使用调试器时,我可以使用 $DB::deep
来指定最大递归深度,我所追求的功能基本相同,但即使不在调试器中也可用。
我查看了 CPAN,但找不到任何内容。对 PerlMonks 的搜索使我找到了一个关于 changing the behaviour of the deep recursion warning 的线程。我所追求的是能够完全阻止递归(例如,如果递归太深,则为 die
)。
有这个功能吗?
如果解决方案允许我对其进行本地化,那么我可以加分,以便我可以控制最大递归深度的范围。
最佳答案
正如之前的答案所提到的,您只能通过重新编译 Perl 来更改触发警告的级别。
但是您可以像这样使现有警告致命:
use warnings FATAL => 'recursion';
关于perl - 如何在 Perl 中设置硬最大递归深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52003112/