FAQ PerlConsultez toutes les FAQ

Nombre d'auteurs : 18, nombre de questions : 250, dernière mise à jour : 29 octobre 2015  Ajouter une question

 

Bienvenue sur la FAQ Perl. Cette FAQ a pour vocation de vous enseigner ou de vous faire revoir les notions élémentaires de ce fantastique langage. Perl est très utilisé dans différents domaines depuis la gestion système, le réseaux, l'administration de bases de données, le web (CGI), la bureautique, la conception d'interfaces graphiques ou des contextes scientifiques telle la bioinformatique. Nous espérons que cette FAQ vous sera d'une grande utilité.

Vous souhaitez participer à l'amélioration de cette FAQ, n'hésitez pas !! Commentez

Bonne lecture !


SommaireCodes sources utilesDes codes sourcesQuelques unilignes perl (24)
précédent sommaire suivant
 

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 : Commentez

Mis à jour le 22 février 2011 djibril

  • Sous Linux/Unix

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

Code : Sélectionner tout
1
2
#perl -e '$pseudo = 'djibril'; print $pseudo;' 
djibril
Code : Sélectionner tout
1
2
3
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 \.

Code : Sélectionner tout
1
2
# 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 :

Code : Sélectionner tout
1
2
C:\>perl -e '$pseudo = 'djibril'; print $pseudo;' 
Can't find string terminator "'" anywhere before EOF at -e line 1.
Code : Sélectionner tout
1
2
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
Code : Sélectionner tout
1
2
3
4
5
6
7
8
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
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 :

Code : Sélectionner tout
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 :

Code : Sélectionner tout
perl -e '$pseudo = 'djibril'; print 'pseudo' ;'
ou encore

Code : Sélectionner tout
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 :

Code : Sélectionner tout
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 16 mars 2011 djibril Philou67430

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2018 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.

 
Responsable bénévole de la rubrique Perl : djibril -