Perl - obtenir le premier “mot” de la chaîne d'entrée

Je suis en train d'écrire un programme en Perl qui lit dans les lignes d'un fichier texte, et, pour chaque ligne, extraire le premier "mot" de la ligne, et d'effectuer une action différente en fonction de la chaîne qui revient.

La boucle principale ressemble à ceci:

while(<AXM60FILE>) {

   $inputline = $_;

   ($start) = ($inputline =~ /\A(.*?) /);

perform something, based on the value of string in $start

}

Le fichier d'entrée est en fait un fichier de paramètres, avec la parameter_name et parameter_value, séparés par un deux-points (":"). Il peut y avoir des espaces ou des tabulations avant ou après la virgule.

Ainsi, le fichier se présente (par exemple) comme suit:

param1: xxxxxxxxxxxx

param2 :xxxxxxxxxxxxx

param3 : xxxxxxxxxxxxxxxxx

param4:xxxxxxxxxxxxx

Que "($start) = ($inputline = ~ /\(.*?) /);" ok pour le "param2" exemple et le "param3" exemple où le 1er mot est terminé par un espace/espace, mais comment puis-je gérer les "param1" et "param4" des situations, où le parameter_name est suivi immédiatement par le colon?

Aussi, si les "espaces" est un onglet ou des onglets, au lieu de vide/caractère d'espace?

Grâce,
Jim

Définir le terme "mot": la langue anglaise mot, un identifiant de programme, blanc, délimitée morceau de non-blanc, de l'alphabet, des caractères alphanumériques, etc.

OriginalL'auteur user555303 | 2011-02-11