Bonjour à tous !

J'ai un souci avec un passage de variable:
J'ai:
* un script cgi dans lequel je vais avoir du texte et des graphes.
* un script cgi qui me permet d'insérer le graph
* un module perl qui dessine le graphe

Voilà une partie du 1er cgi (la page mère):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#!c:\perl\bin\perl.exe
print "Content-type:text/html\n\n";
...
.....du texte ... etc ...
.......
@pie0=('1','2','3','4');
@pie1=('10','20','30','40');
 
@pie=(\@pie0,\@pie1);
 
print "<img src='./graph.pl?DATA=".\@pie.">\n";
 
print "</body></html>\n";

L'image appelle un cgi nommé graph.pl, le voici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#!c:\perl\bin\perl.exe
 
use CGI;
use TX2::Graph::Graph;
$cgi=new CGI;
$tab=$cgi->param('DATA');
$tab0=$tab->[0];
$tab1=$tab->[1];
open(fic,'>./fic.txt');
print fic "DEBUG: ".@{$tab0}->[0];
close(fic);
 
&TX2::Graph::Graph::PlotGraph($tab);
Et enfin la fonction &TX2::Graph::Graph:lotGraph() vient du module TX2::graph:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
#!c:\perl\bin\perl
package TX2::Graph::Graph;
#%% Simple Pie chart | WWW | CGI, GD::Graph::pie
#______________________________________________
 
use CGI  qw/:standard/;
use GD::Graph::pie;
#use strict;
 
# Call it like this : <img src = 'piechart.cgi?x=200&y=100'>
 
sub PlotGraph()
{
      my $donnee=$_[0];
      my @DataText=$donnee->[0];
      my @DataValue=$donnee->[1];
      print "DONNEE ".$donnee->[0];
      my $xs = param('x');
      my $ys = param ('y');
      do {$xs = 200; $ys = 100} unless $xs;
 
      print "Content-type: image/gif \n\n";
 
      # For simple chart you can pass these in param string
      # for complex charts use data file
 
      my @data = (@DataText,@DataValue);
 
 
      my $graph = GD::Graph::pie->new($xs, $ys);
      $graph->set(
        title       => 'Analysis',
        y_max_value => 100
      );
 
      my $gd = $graph->plot(\@data);
      binmode STDOUT;
      print $graph->plot(\@data)->gif();
 
}
-1;

Or à l'affichage, j'ai une une croix symbolisant un gif non toruvé (rien de chargé) et l'erreur suivante ressortant d'apache:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
[error] [client 127.0.0.1] Can't call method "gif" on an undefined value at c:/Perl/lib/TX2/Graph/Graph.pm line 38.\n
ça vient du fait probablement que mes variables ne sont pas bien passées.
les valeurs qui me permettent d'afficher le graphes sont dans un tableau de 2 tableau @pie. Je passe ensuite la référence de ce tableau au cgi graph.pl puis appelle la fonction PlotGraph avec cette référence en paramètre.

Qu'est ce qui ne va pas ? Quelle erreur je fais pour ne pas retrouver mes tableaux ????

Merci beaucoup pour votre aide !!
Et bonne journée