Sigil (informatique)

Un sigil est le premier caractère d'un identificateur en Perl. Il est non alphanumérique et dénote son type. Donc, Perl n'est pas seulement un langage dynamiquement typé, c'est aussi un langage statiquement typé, bien qu'avec peu de types statiques.

$a   # variable de type scalaire
@a   # variable de type tableau
%a   # variable de type hash
\&a  # fonction

Pour les articles homonymes, voir Sigil.

Sigil et interpolation de chaîne

L'interpolation de scalaire dans une chaîne est très utile. Cette sémantique est héritée des shell Unix.

Twigils

Perl 6 introduit des sigils secondaires appelés twigils :

$foo     # variable classique sans sigil secondaire
$^foo    # paramètre auto-déclaré
$*foo    # variable globale
$?foo    # indication pour le compilateur
$=foo    # variable pod : pour la documentation
$<foo>   # variable de match utilise dans les regex
$!foo    # attribut privé de l'objet courant
$.foo    # attribut public de l'objet courant...
         # ...accesseur pour du code en dehors de la classe de l'objet

Larry Wall dit que la sémantique des twigils de Perl 6 est en gros celle des sigils de Ruby[1].


Avantage d'une contrepartie lexicale d'un type statique

Le fait que le type statique ait une contrepartie lexicale comporte un avantage considérable. Le type statique est ainsi indissociable du nom. C'est une forme d'autodocumentation. Perl 6 étend ce mécanisme documentaire. Ainsi, quand la documentation Perl 6 parle de .toto, il s'agit de la méthode toto. Le point n'est pas à proprement parler un sigil car le nom de la méthode est toto. Mais le point faisant partie de la syntaxe d'appel de la méthode, cette convention de nommage est mnémotechnique.

Voir aussi

Notes et références

  1. Larry Wall, « extrait de log irc de #perl6 », sur irclog.perlgeek.de, (consulté le )


  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.