bonjour,
après que Jasmine80 et Djibril m'aient donné des conseils hier (voir post : http://www.developpez.net/forums/d67...t/#post3938713)
j'ai commencé à corriger mes autres scripts en suivant ces conseils, c'est dire éviter de passer en argument de fonctions des tables de hashage énorme, mais plutôt passer une référence vers cette table de hashage. Jusque là tout va bien, pas de problème notable, ça marche.
Cela dit, j'ai une question sur ce code :
La première fonction me renvoie des références vers deux tables de hashage qu'elle construit. Je déréférence ces deux tables dans deux nouvelles tables de hashage puis je les passe en références à deux autres fonction qui en ont besoin.
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 print "Extraction des donnees du fichier $opt_r...\n"; my @ref_data = &Extract_data_tag(); my $ref_tag = $ref_data[0]; my $ref_FT = $ref_data[1]; my %tags_infos = %$ref_tag; my %liste_FT = %$ref_FT; print "\tNombre de tags : ".keys(%tags_infos)."\n"; print "\nRecherche des FT presents dans SQUAT...\n"; my %liste_FT_SQUAT = &Presence_FT_SQUAT(\%liste_FT); print "\nRecherche des matrices correspondantes dans $opt_m...\n"; my %FT_mtx_infos = &Extract_mtx_infos(\%liste_FT_SQUAT); print "\nFiltrage des données extraites du fichier $opt_r pour ne garder que les FT present dans SQUAT...\n"; my %tags_infos_filtre = &Filtrage_FT_tags(\%tags_infos); print "\nRecuperation des ".$table."VirtualTag_id correspondant aux tags...\n"; &Recup_tag_id(\%tags_infos_filtre); print "\nCreation des fichiers permettant de remplir les tables TRANSCRIPTION_FACTOR et MATRIX...\n"; my %TF_id = &Creation_loaddataTF_mtx(\%FT_mtx_infos); print "\nCreation des fichiers permettant de remplir les tables TFBS et PROMOTER_USED...\n"; &Creation_loaddataTFBS_prom_used(\%TF_id, \%tags_infos_filtre);
Ma question est la suivante : est-il nécessaire/conseillé de d'abord les déférencer pour ensuite les passer à deux nouvelles fonction sous forme de nouvelles références, ou est-il possible/conseillé de les garder sous forme de référence tout le long et donc de passer aux deux autres fonction directement les références récupérées après l'appel de la première fonction ? (je sais pas si c'est bien clair ce que je raconte... )
En fait, est ce qu'il vaut mieux utiliser le code ci-dessus, ou le code ci-dessous :
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 print "Extraction des donnees du fichier $opt_r...\n"; my @ref_data = &Extract_data_tag(); my $ref_tag = $ref_data[0]; my $ref_FT = $ref_data[1]; print "\tNombre de tags : ".keys(%tags_infos)."\n"; print "\nRecherche des FT presents dans SQUAT...\n"; my %liste_FT_SQUAT = &Presence_FT_SQUAT($ref_FT); print "\nRecherche des matrices correspondantes dans $opt_m...\n"; my %FT_mtx_infos = &Extract_mtx_infos(\%liste_FT_SQUAT); print "\nFiltrage des données extraites du fichier $opt_r pour ne garder que les FT present dans SQUAT...\n"; my %tags_infos_filtre = &Filtrage_FT_tags($ref_tag); print "\nRecuperation des ".$table."VirtualTag_id correspondant aux tags...\n"; &Recup_tag_id(\%tags_infos_filtre); print "\nCreation des fichiers permettant de remplir les tables TRANSCRIPTION_FACTOR et MATRIX...\n"; my %TF_id = &Creation_loaddataTF_mtx(\%FT_mtx_infos); print "\nCreation des fichiers permettant de remplir les tables TFBS et PROMOTER_USED...\n"; &Creation_loaddataTFBS_prom_used(\%TF_id, \%tags_infos_filtre);
Partager