My advice would be to distill and add fatal error checking everywhere you call GD functions. I would also separate the $GD->plot( \@data )->png into two calls with error checks on each. This eval example works just fine so it is not the eval that is the issue:
sub graph_vector { require GD; require GD::Graph::bars; my $png = "c:\\temp\\test.png"; my $GD = GD::Graph::bars->new( 300,300 ) or die $GD->error; my $data = GD::Graph::Data->new( [ [1..26],[1..26] ] ) or die $GD->error; my $gd = $GD->plot( $data ) or die $GD->error; open my $img, '>', $png or die "Couldn't open $png: $!"; binmode $img; print $img $gd->png or die "Error printing png: $!:", $GD->error; close $img; undef $gd; die "Got error!\n"; return 0; } eval{ graph_vector() }; print $@ if $@;
However if you pass null array refs to new() it chokes. I am calling GD::Graph::Data so you can see that error. I suspect you may not be getting the data from your DB.
cheers
tachyon
In reply to Re: eval() issues.
by tachyon
in thread eval() issues.
by Mercio
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |