#!C:\perl\bin\perl.exe use strict; use warnings; use CGI ':standard'; use GD::Graph::lines; use GD::Graph::Map; use DBI; use Data::Dumper; my $db = "..."; my $user = "..."; my $pwd = "..."; my $dbh = DBI->connect("DBI:DB2:$db", "$user", "$pwd", {RaiseError => 0, AutoCommit => 1}); my $stmt = "..."; my $sth = $dbh->prepare($stmt); my $rc = $sth->execute; my $data = $sth->fetchall_arrayref; $sth->finish; my @dates = (); my @values = (); my @urls = (); my $baseURL = "http://localhost:8080/cgi-bin/index.cgi?date="; foreach my $entry (@$data){ push(@dates, $entry->[0]); push(@values, $entry->[1]); push(@urls, $baseURL . $entry->[0]); } my @chartData = ([@dates], [@values]); my $graph = GD::Graph::lines->new(1300, 600); $graph->set( x_label => 'Date', y_label => 'Transaction Count', title => 'Transaction Counts by Day', y_max_value => 2500, y_min_value => 0, y_tick_number => 10, y_label_skip => 2, box_axis => undef, line_width => 2, ); open(CHART, ">../htdocs/chart.png") or die; binmode CHART; print CHART $graph->plot(\@chartData)->png; close(CHART); my $map = new GD::Graph::Map($graph, hrefs=>\@urls, noImgMarkup=>0, mapName=>"chartmap", info=>'%x,%y', ); print header, start_html('Simple Script'), h1('Simple Script'), hr, img({src=>"/chart.png", usemap=>"#chartmap"}), ($map->imagemap("chart.png", \@chartData)); print end_html; print Dumper @dates; print Dumper @values; print Dumper @urls;