Sigil (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Sigil (homonymie).

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

Sigil et interpolation de chaîne[modifier | modifier le code]

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

Twigils[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Notes et références[modifier | modifier le code]

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