k2 has asked for the wisdom of the Perl Monks concerning the following question:

Hi!
I recieved this yesterday when I try to create a pie-graph with GD::Graph::pie.

Deep recursion on subroutine "GD::Graph::pie::level_angle" at D:\Perl\site\lib\GD\Graph\pie.pm line 415

I had a look at line 415 and it handles the angle that the pie-graph starts on.
The angle is defined in my code as
$graph->set( suppress_angle => '15', start_angel => '179', set_legend_font => ( 'arial.ttf', 8), );

Can't see any problem there and my code ran perfectly earlier this week.
So now I hope that anyone of you has seen this problem before
and knows how to correct it.

By the way... this is the first time I got a little window saying
" perl.exe has generated errors and will be closed by windows. You will need to restart the program".
Kinda cool since I didn't think this was ever going to happen when you run with #!/usr/bin/perl -w

Merry Christmas and a Happy New Year
/k2

Replies are listed 'Best First'.
Re: Deep recursion on subroutine ?!?
by tachyon (Chancellor) on Dec 23, 2001 at 17:50 UTC

    If you cut and pasted this code you have a typo in start_angel which may be the problem as start_angle will be undefined.

    Deep recursion means that that a sub is recursing more than one hundered times. The code in question is:

    412: sub level_angle # (angle) 413: { 414: my $a = shift; 415: return level_angle($a-360) if ( $a > 180 ); 416: return level_angle($a+360) if ( $a <= -180 ); 417: return $a; 418: }

    The only way that I can see that this sub could recurse >100 times (and implicate line 415) is if $a > 100 * 360. If $a is undef it will just get returned. You could trace back to see why this should be so but I expect fixing the typo may fix it.

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print