in reply to eval() issues.
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
|
|---|