IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Des codes sources perlConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 59, dernière mise à jour : 27 mai 2011 

 
OuvrirSommaireQuelques unilignes perl

Vous trouvez une erreur, vous avez des remarques à effectuer ou si vous souhaitez partager une liste de codes unilignes perl, n'hésitez pas et postez le ici : 92 commentaires Donner une note à l´article (5)

Créé le 2011-02-22  par djibril
  • Sous Linux/Unix

Sous une console Linux/Unix, vous devez utiliser des simples quotes. Exemple :

Simple quote
Sélectionnez
#perl -e '$pseudo = 'djibril'; print $pseudo;'
djibril
Double quote
Sélectionnez
C:\>perl -e "$pseudo = 'djibril'; print $pseudo;"
syntax error at -e line 1, near "="
Execution of -e aborted due to compilation errors.

En fait, le programme a subi une interpolation de la variable $pseudo. Perl a donc compris = 'djibril'; au lieu de $pseudo = 'djibril';. S'il y avait une variable d'environnement s'appelant pseudo, Perl l'aurait interprété autrement.

Si vous tenez absolument à utiliser des guillemets, protégez votre variable avec un \.

 
Sélectionnez
# perl -e "\$pseudo = 'djibril'; print \$pseudo;"
djibril

L'écriture est un peu moins évidente et compréhensive.

  • Sous Windows

Sous une console DOS Windows, vous devez utiliser des double quotes sous peine d'avoir un message d'erreur. Exemple :

Simple quote
Sélectionnez
C:\>perl -e '$pseudo = 'djibril'; print $pseudo;'
Can't find string terminator "'" anywhere before EOF at -e line 1.
Double quote
Sélectionnez
C:\>perl -e "$pseudo = 'djibril'; print $pseudo;"
djibril
  • Sous Windows - Cygwin

Le comportement du Shell est semblable à celui d'Unix, donc utilisez des simple quotes.

  • Astuces à connaître

Perl vous donne la possibilité d'utiliser 3 fonctions de remplacement des guillemets simples, doubles ou renversés : qq, q et qx.

Fonction Remplacement Interpolation
qq{} " oui
q{} ' non
qx{} `` oui
Exemple q{}, qq{} et qx{}
Sélectionnez
 perl -e '$pseudo = q{djibril}; print qq{Pseudo : $pseudo\n};'
Pseudo : djibril

# perl -e 'print qx{ls -alh /home}'
total 1.0K
drwxr-xr-x  4 root root  104 Mar  4 08:38 .
drwxr-xr-x 21 root root  512 Mar 11 10:27 ..
drwxr-xr-x  8 djibril djibril 584 Mar  4 10:00 djibril

Attention : Sous Unix et Cygwin, on ne peut pas utiliser des quotes simples pour délimiter des chaînes non interprétables dans un uniligne défini avec des quotes simples. Ainsi, pour :

 
Sélectionnez
perl -e '$pseudo = 'djibril'; print $pseudo;'

ça fonctionne car la chaîne djibril ne contient aucun caractère interprétable du Shell. En revanche, ça ne fonctionne plus dès lors qu'on utilise :

 
Sélectionnez
perl -e '$pseudo = 'djibril'; print 'pseudo' ;'

ou encore

 
Sélectionnez
perl -e '$pseudo = 'djibril'; print '$pseudo=', $pseudo, "\n";'

Si l'on utilise la quote simple pour l'uniligne, il faut impérativement utiliser q{} pour définir des chaînes littérales non interprétables :

 
Sélectionnez
perl -e '$pseudo = q{djibril}; print q{$pseudo=}, $pseudo, "\n";'

Pour en savoir plus sur ces fonctions, regardez la documentation officielle :

  • man perlop sous Linux/Unix ;
  • perldoc perlop sous Windows.
Mis à jour le 2011-03-16  par djibril, Philou67430
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2011 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.