PERL Split
Résolu
wafa_o
Messages postés
112
Statut
Membre
-
wafa_o Messages postés 112 Statut Membre -
wafa_o Messages postés 112 Statut Membre -
Bonjour,
J'ai besoin de vos lumières svp. J'ai un fichier du type:
my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } );
Je voudrais le placer dans un tableau en découpant la ligne en bloc avec ''. J'ai essayé avec split mais ca ne marche pas :
my @tab = split (' ' , $tabFichier[$_] ;
Est ce que vous pouvez m'aider ?
Merci d'avance.
J'ai besoin de vos lumières svp. J'ai un fichier du type:
my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } );
Je voudrais le placer dans un tableau en découpant la ligne en bloc avec ''. J'ai essayé avec split mais ca ne marche pas :
my @tab = split (' ' , $tabFichier[$_] ;
Est ce que vous pouvez m'aider ?
Merci d'avance.
Configuration: Windows XP Internet Explorer 6.0
2 réponses
-
Bonjour,
Dans ta variable $tabFichier[$_] tu as quoi exactement? Quand tu la print par exemple
Sinno la syntaxe du split est mauvaise :
Ecris plutot : my @tab = split (/'/ , $tabFichier[$_] );-
-
Ce n'est pas faisable directement par un split, étant donné qu'il consomme forcément le séparateur qu'on utilise.
Il faudrait soit modifier l'expression avant de la passer au split (par exemple rajouter d'autres caractères servant de séparateurs autout des blocs entre ''), soit ne pas utiliser de split du tout et procéder autrement.
Je regarde vite fait si je trouve quelque chose de simple. -
-
-
Avant l'expression régulière plutot, comme ça effectivement il n'y aura pas de risque de \n supplémentaire.
Sinon si tu veux absolument separer les ) ] } à la fin, tu peux essayer ça aussi :
$chaine =~ s/\s*(=>\s*{|=>\s*\[|=>\s*\(|,|\)|\]|\})\s*/\n$1\n/g;
@tab = split (/\n\n|\n/,$chaine);
Mais c'est moche à lire ^^
-
-