Exécution d'un commande perl
Fermé
montisero
Messages postés
65
Date d'inscription
jeudi 4 septembre 2014
Statut
Membre
Dernière intervention
18 mars 2016
-
Modifié par montisero le 23/02/2015 à 13:14
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 23 févr. 2015 à 13:37
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 23 févr. 2015 à 13:37
A voir également:
- Exécution d'un commande perl
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Diskpart commande - Guide
- Commande scannow - Guide
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 23/02/2015 à 13:38
Modifié par [Dal] le 23/02/2015 à 13:38
Salut montisero,
Plusieurs problèmes dans ton code.
Si tu dois changer les espaces en virgules, ta regexp doit être
pour plus de clarté, tu peux utiliser
ensuite :
- les commentaires en Perl, c'est avec #
- le Perl exec a la syntaxe mentionnée dans Perldoc, mais est inadaptée dans ton cas car : (i) tu n'as pas à exécuter un autre processus pour quelque chose que Perl sait faire (et que tu fais déjà par ailleurs puisque ton code fait déjà des substitutions d'espaces initiaux et terminaux) ; et (ii) exec ne retourne pas (sauf si elle échoue)
- si tu utilises
- tu oublies le $ dans ton
Voilà un exemple
Dal
Plusieurs problèmes dans ton code.
Si tu dois changer les espaces en virgules, ta regexp doit être
s/ +/,/g(il y a un espace avant le +) et pas juste un +.
pour plus de clarté, tu peux utiliser
\s, qui signifie un caractère "blanc" (comme le fait, d'aileurs la regexp déjà présente dans ton code
$_=~ s/^\s+|\s+$//g;).
ensuite :
- les commentaires en Perl, c'est avec #
- le Perl exec a la syntaxe mentionnée dans Perldoc, mais est inadaptée dans ton cas car : (i) tu n'as pas à exécuter un autre processus pour quelque chose que Perl sait faire (et que tu fais déjà par ailleurs puisque ton code fait déjà des substitutions d'espaces initiaux et terminaux) ; et (ii) exec ne retourne pas (sauf si elle échoue)
- si tu utilises
use strict;tu dois déclarer tes variables avant de les utiliser, y compris
$chaine1.
- tu oublies le $ dans ton
$chaine1(au lieu de juste afficher le texte
chaine1.
Voilà un exemple
#!/usr/bin/perl use strict; use warnings; $_ = "hello hi Jean school"; my $chaine1 = $_; # commentaire $chaine1 =~ s/\s+/,/g; print "$chaine1\n";
Dal