Salut à tous,
j'aurais besoin un peu d'aide pour contruire ma table %datdir ( qui a pour clef $s_project et pour valeurs des listes @ldat).
Je veux avoir dans une table datdir tous les liste ldat que je recupere des $s_project de tous les $s_client.
Mais ceci push @{$datdir{$s_project}}, @ldat ne marche pas,
Merci pour grain de sel


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
sub CheckProjectDir() {
 
#_:  s_client : Indexe les clefs (client)  de la table %project
#_:  s_project : Indexe les valeurs (etudes) de la table %project
#_:  s_dir : stocke le project courant
#_:  s_dsc : stocke le dsc du projet courant 
        my ($s_client, $s_project, $s_dir, $s_dsc);
        for $s_client (keys (%project))
        {
                if ($check) {print "Client : $s_client\n" ;}
                #for $s_project (values (%project))
                for $s_project (@{$project{$s_client}})
                {
                        if ($check) { print "\tEtude : $s_project\n"; }
                        $s_dir="$maindir/$s_client/$s_project "; #project courant
                        next if !-d $s_dir ;
                        if ($check) { print "\t\tChemin : $s_dir\n";} # probleme d'affichage du chemin
                        opendir (FHdir, $s_dir);
                        if ($?!=0) { &MyWarning(__LINE__, $!, "Can not open directory $s_dir "); next;}
                        @ldat = glob('*.dat '); # la liste des fichiers .dat du project courant
                        $s_dsc = glob('.dsc');  # dsc du project courant
                        # $s_dsc=$s_project.".dsc";
                        closedir(FHdir);
                }
        push @{$datdir{$s_project}}, @ldat ; # %datdir a pour clef s_project et pour valeurs @ldat
        push @dscdir, $s_dsc;
        }
 return %datdir; # Retourner la liste des .dat d'un project
 return @dscdir; # Stocke les  dsc des project d'un client
}