Script Perl

Résolu/Fermé
Niroise Messages postés 29 Date d'inscription lundi 23 avril 2012 Statut Membre Dernière intervention 3 août 2012 - 25 juil. 2012 à 11:36
valentin2703 Messages postés 180 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 30 septembre 2012 - 26 juil. 2012 à 08:15
Bonjour,

je souhaite concaténer plusieurs tableaux en un seul. à vrai dire le résultat d'un traitement est stocké dans plusieurs tableaux
d'une seule colonne et le tableau final que je souhaite obtenir doit avoir le nombre de tableaux en colonnes.

comment devrai-je procéder. Merci :)
A voir également:

1 réponse

valentin2703 Messages postés 180 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 30 septembre 2012 9
25 juil. 2012 à 11:59
Salut,

Tu a juste a créer un tableau principal dans lequel tu ajoute tes tableaux secondaires, ce qui va te donner un tableau à deux dimensions, comme ceci :

#!/usr/bin/perl
use warnings;
use strict;

my @tab_1 = ("11", "12", "13");
my @tab_2 = ("21", "22", "23");
my @tab_3 = ("31", "32", "33");
my @finalTab;

$finalTab[0] = @tab_1;
$finalTab[1] = @tab_2;
$finalTab[2] = @tab_3;


Ensuite, si tu veut afficher le contenu du tableau, il faut faire deux boucles imbriquées.
0
Niroise Messages postés 29 Date d'inscription lundi 23 avril 2012 Statut Membre Dernière intervention 3 août 2012
25 juil. 2012 à 13:55
merci beaucoup,

Je vous savoir aussi es-ce-qu'on peut affecter des variables dans des tableau, genre

$x c'est le résultat d'un traitement dans une boucle et à chaque itération je fais :

et $tab[$i] = $x;


donc le tableau aura pour élément les valeur de la variable $x à chaque itération ?
0
valentin2703 Messages postés 180 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 30 septembre 2012 9
Modifié par valentin2703 le 25/07/2012 à 14:50
Oui on peut faire ça :)

Si tu ne veut pas t'embêter avec les boucles ($i), tu peut utiliser la fonction push() en perl. C'est plus pratique. Il suffit de faire push(TABLEAU, VALEUR), par exemple :
push(@tab, $x);
0
Niroise Messages postés 29 Date d'inscription lundi 23 avril 2012 Statut Membre Dernière intervention 3 août 2012
25 juil. 2012 à 15:52
merciii :)
0
Niroise Messages postés 29 Date d'inscription lundi 23 avril 2012 Statut Membre Dernière intervention 3 août 2012
25 juil. 2012 à 15:59
encore une question!
comment peut-on déclarer un tableau avec des lignes et des colonnes. car ce que je veux faire moi, comme $x est une variable qui a plusieurs valeurs je l'insère dans la case @ tab[i]
et une autre variable $y dans la case @tab [$i+1]
0
valentin2703 Messages postés 180 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 30 septembre 2012 9
Modifié par valentin2703 le 25/07/2012 à 16:06
Si tu veut juste insérer à la case i+1 à chaque fois, il te suffit d'utiliser la fonction push()
push(@tab, $x);    
push(@tab, $y);


Si ton $x a plusieurs valeurs, alors fait en un tableau plutôt qu'une variable, c'est plus propre.
Du coup si ton $x devient un @x (un tableau), alors tu auras un tableau à deux dimensions, ce qui correspond à un tableau ligne/colonne, ou toutes les valeurs de @x correspondent à une ligne :
Si @x = (1,2,3,4,5) et @y = (6,7,8,9,10)
Avec $tab[0] = @x et $tab[1] = @y
Alors on a un tableau qui ressemble à ça :
1 2 3 4 5
6 7 8 9 10
0