Probleme de boucle en perl

Probleme de boucle en perl - Perl - Programmation

Marsh Posté le 13-09-2006 à 14:31:20    

Bonjour,
 
Je suis TRES debutant sur perl , jusqu'ici,je me suis toujours debrouille avec des one liner....mais cette fois ci je doit ecrire tout un script en perl...et je galere sur la boucle....
 
Le one liner en question:

Code :
  1. perl -F\' -lane 'print $F[5] if /(INCI0)/' fichier_plat


 
Ici, j'imprime le 5 ieme champ de chaque ligne qui contient INCI0 (les champs sont separé par le caractere " ' " )
le fichier_plat contient les sources d'une page web
 
j'ai "reduit" mon one liner a ca:

Code :
  1. perl -ne '@field = split(/'\''/);print "$field[5]"."\n" if /(INCI0)/ ' fichier_plat


 
Mon probleme:
Je n'arrive pas a trouver comment ecrire un boucle pour arriver au meme result dans mon script
 
Mon script:
avec le module LWP::Simple, je recupere une page web
 
my $page = get ('http://www.adresse.com');
 
je veux recupere le 5 ieme champ de chaque ligne qui contient INCI0 (les champs sont separé par le caractere " ' " ) dans $page
le resultat est ecrit dans une variable...
 
Merci de votre aide :jap:


Message édité par vorta251 le 14-09-2006 à 11:47:48
Reply

Marsh Posté le 13-09-2006 à 14:31:20   

Reply

Marsh Posté le 14-09-2006 à 21:32:37    

Hello
 
Ton one liner recupere le 6ieme champ (chez perl on commence a compter a 0)
 
Pour ta recherche ca fait:
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. my @result;
  4. my @pass;
  5. my @page = get ('http://www.adresse.com');
  6. foreach (@page) {
  7. if ( $_ =~ m/INCI0/) {
  8. @pass = split(/\\'/, $_);
  9. push(@result, $pass[5]);
  10. }
  11. }


 
le resultat se trouve dans le tableau @result
 
Voila!
 
ciao


Message édité par shaman200 le 17-09-2006 à 20:28:48

---------------
War is Peace,Freedom is Slavery,Ignorance is Strength.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed