(Courriels de diversion: <resignions@lubrifiions-aurions.com> <admettra@enterinee-situeras.com> <decrocherez@complote-retrousses.com> <alternant@trancherez-signataires.com> <lustrerai@pavoisons-croiseras.com> <connectee@redingotes-decernais.com> <discredits@corniches-mesquineries.com> <demoulent@floue-pretendrais.com> <regionaliserait@verse-recevront.com> <massacrerais@crâneuse-repeterez.com> )


On Wed, 24 Feb 1999, Jerome Gasperi wrote:

> 
> Salut,
> 
> J'ai un autre probleme avec perl (promis apres je vous embete plus).
> Mon probleme est le suivant. Je veux faire un equivalent de
>    cat file | grep "toto" | awk '{print $1}'
> 
> Pour cela je fais un truc du genre:
> 
>      if (/toto//){@spltfld=split(" ",$_);}
> 

Remarque : tu peux mettre simplement split (" ")

> Le probleme c'est que si dans le fichier j'ai :
> 
> toto va a la plage
> 
> alors $spltfld[0] me renvois toto, ce qui est normal
> 
> Par contre, si il y a un espace en debut de phrase
> 
>  toto va a la plage
> 
> C'est la catastrophe parce-que $spltfld[0] ne vaut plus "toto" mais
> contient visiblement le debut de la ligne ("^" ????)
> 

C'est bizarre, pour moi avec perl version 5.004_04 si je fait:

perl -e '$_="  toto  champ2"; split(/" "/); print "0=$_[0]
1=$_[1]\n"'

J'obtiens "0=  toto 1=champ2".

Sinon, pour regler ton probleme, tu peux peut-etre intercaler : 

s/^[ \t]*// pout virer les blancs du debut.

|                              `""'
| Xavier Montagutelli          0--0
|               ---------oOOo---()---oOOo----------
| INSA Toulouse - Dpt de Mathematiques   Tel: +33 5 61 55 93 38 (HB)
| Complexe scientifique de Rangueil      Fax: +33 5 61 55 93 20
| 31077 Toulouse Cedex                   Mel: montagut@gmm.insa-tlse.fr 

 _______________________________________________________________________
  Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/