in reply to Re: Turn off FATAL warnings in 3rd party module
in thread Turn off FATAL warnings in 3rd party module

Good point Eily about no guarantees add_child() has finished what's supposed to be doing without interruption if I enclose the offending statement in eval {}. The warning causes a die after all. For the record, it does seem to add the child beyond 99 and fails in doing the necessary housekeeping.

Also, even if it succeeds in the small script I provided, in my real use-case I must eval each and every Tree method just in case it runs over the recursion limit.

So, I am not doing the eval. I am looking for a replacement module (any suggestions) and filing a request to author.

Replies are listed 'Best First'.
Re^3: Turn off FATAL warnings in 3rd party module
by stevieb (Canon) on Jun 03, 2019 at 15:55 UTC
    "I am looking for a replacement module (any suggestions) and filing a request to author."

    I'd simply fork the repo, create a new branch, make your change, and install the updated distribution manually from your repository. Then, in Github, create a Pull request (PR) with your updated branch for possible inclusion into the original software.

    If you're unfamiliar with that process, let me know and I'll quickly do it for you, and provide you a link to the updated repo for you to install from.

      Took a moment to take care of it. Here's the PR, and my repo (PR was approved, use the original repo link instead. I assume a new CPAN release is imminent) that you can clone from (git clone https://github.com/ronsavage/Tree), then checkout the "remove_fatal_warnings" branch (git checkout remove_fatal_warnings), then install as normal:

      perl Makefile.PL make make test make install

      Output after installing the changes:

      Deep recursion on subroutine "Tree::_fix_height" at /home/spek/perl5/p +erlbrew/perls/perl-5.26.1/lib/site_perl/5.26.1/Tree.pm line 333. Deep recursion on subroutine "Tree::_fix_width" at /home/spek/perl5/pe +rlbrew/perls/perl-5.26.1/lib/site_perl/5.26.1/Tree.pm line 346. Deep recursion on subroutine "Tree::event" at /home/spek/perl5/perlbre +w/perls/perl-5.26.1/lib/site_perl/5.26.1/Tree.pm line 198. success

      Update: I just added a quick and dirty test file to the PR to ensure the new functionality Does The Right Thing. I do that normally in the process of creating a PR, but I had urgent business to tend to earlier and figured the test could wait a bit. Note: I used the exact code OP specified to demonstrate the problem.

        stevieb that's cool! Will the "pull request" alert the author about the issue and possibly initiate a fix from him?