GD::Graph::pie Hiiilfe
sottosopra
- perl
0 Raik0 sottosopra0 Raik
Hallo an alle erfahrenen Kuchenbäcker...
ich bin dabei,meine erste "Torte" zu backen und weiß einfach nicht weiter..:?:
Ich habe bei folgendem Script einen Fehler nach dem nächsten beseitigt,aber jetzt habe ich noch einen (den einfachsten hoffentlich)
syntax error Missing right curly or square bracket in line 84 at end of line
>>>>mein Script hat aber nur 82 lines
In der error.log steht syntax OK\n
Warum läuft es nicht?
Kann mir dabei bitte jemand helfen (...verzweifel...)
VIVA LA VITA...
#!c:/perl/bin/perl -w
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use GD::Graph::pie;
use DBI;
my $DBH;
my $STH;
###Datenbankverbindung###
$DBH = DBI->connect("DBI:CSV:db_kundenteile=c:/Programme/Apache Group/Apache/cgi-bin")
or die "Konnte keine Verbindung zur Datenbank herstellen!$!\n";
$STH = $DBH->prepare("SELECT * FROM db_kundenteile")
or die "Konnte SQL-Statement nicht bereitstellen!$!\n";
$STH->execute()
or die "Ausfuehren nicht möglich!$!\n";
my @werte;
my @res;
###Draw the data slices###
sub draw_data
{
my $self = shift;
my $total = 0;
my @werte = $self->{_data}->y_values(1);
for (@werte)
{
$total+=$_
}
return $self->set_error("Pie data total is <=0")
unless $total>0;
my $ac = $self->{acci};
my $pb = $self->{start_angle};
for (my $i=0; $i<@werte; $i++)
{
###Werte zeilenweise auslesen###
while (@werte = $STH->fetchrow_array())
{
push @res, @werte;
}
$STH->finish();
$DBH->disconnect;
###Data-Array als Grafikgrundlage###
my @data = (
[$res[0], $res[10], $res[20]],
[$res[1], $res[11], $res[21]],
[$res[2], $res[12], $res[22]],
[$res[3], $res[13], $res[23]],
[$res[4], $res[14], $res[24]],
[$res[5], $res[15], $res[25]],
[$res[6], $res[16], $res[26]],
[$res[7], $res[17], $res[27]],
[$res[8], $res[18], $res[28]],
[$res[9], $res[19], $res[29]]
);
###Grafikeigenschaften festlegen###
my $my_graph = GD::Graph::pie->new(300,300);
$my_graph->set(title=>'Kollektion');
###Ausgabe###
my $format = $my_graph->export_format;
print header("image/$format");
binmode PNG;
print $my_graph->plot(@data);
Hallo, sottosopra!
for (my $i=0; $i<@werte; $i++)
{
wo wird die klammer wieder geschlossen?
freundl. Grüsse aus Berlin, Raik
Hallo nach Berlin...
Gute Frage...ich bin noch nicht wirklich gut in Perl ...und sitze schon ewig an diesem script...ich sehe glaube ich vor lauter Streusel den Kuchen nicht mehr...
Kannst Du mir bitte einen Tip geben ???
...denn wenn ich die Klammer am Ende (line 84) setze,ändert sich gar nix
...oder fehlt da noch was in der bereits geöffneten Klammer ?
Sottosopra
Hallo, sottosopra!
...ich bin noch nicht wirklich gut in Perl ...
Kannst Du mir bitte einen Tip geben ???
ich hab auch keine ahnung von perl, ich formatiere nur den quelltext immer:
###Draw the data slices###
sub draw_data
{
my $self = shift;
my $total = 0;
my @werte = $self->{_data}->y_values(1);
for (@werte)
{
$total+=$_
}
return $self->set_error("Pie data total is <=0")
unless $total>0;
my $ac = $self->{acci};
my $pb = $self->{start_angle};
for (my $i=0; $i<@werte; $i++)
{
###Werte zeilenweise auslesen###
while (@werte = $STH->fetchrow_array())
{
push @res, @werte;
}
$STH->finish();
$DBH->disconnect;
###Data-Array als Grafikgrundlage###
my @data = (
[$res[0], $res[10], $res[20]],
[$res[1], $res[11], $res[21]],
[$res[2], $res[12], $res[22]],
[$res[3], $res[13], $res[23]],
[$res[4], $res[14], $res[24]],
[$res[5], $res[15], $res[25]],
[$res[6], $res[16], $res[26]],
[$res[7], $res[17], $res[27]],
[$res[8], $res[18], $res[28]],
[$res[9], $res[19], $res[29]]
);
###Grafikeigenschaften festlegen###
my $my_graph = GD::Graph::pie->new(300,300);
$my_graph->set(title=>'Kollektion');
###Ausgabe###
my $format = $my_graph->export_format;
print header("image/$format");
binmode PNG;
print $my_graph->plot(@data);
und dabei fällt mir noch auf, dass nicht nur die klammer von
for (my $i=0; $i<@werte; $i++)
nicht wieder geschlossen wird, sondern oben drüber auch die von
sub draw_data
nicht.
ob es daran liegt, kann ich also nur raten. aber gewöhn dir an, solche routinen so oder ähnlich einzurücken. das hilft, den überblick zu behalten.
freundl. Grüsse aus Berlin, Raik