Les listes sont stockées dans des variables de type tableau. Ces tableaux, indexés par des entiers et commençant à l'index 0, permettent d'accéder directement à certaines valeurs de la liste.
Les variables sont précédées d'un signe @ lorsqu'on manipule
le tableau entier : @tableau2.5
Un tableau étant constitué uniquement de valeurs scalaires, lorsque
l'on veut accéder à une des valeurs du tableau, en précisant son index
entre crochets, celle-ci est donc scalaire, et il faut donc
écrire $tableau[2].
Il existe ce qu'on appelle des tranches de tableaux, qui sont
notées ainsi :
@tableau[2,5], @tableau[2 .. 5].
Pour obtenir le nombre d'éléments d'un tableau, on peut utiliser la notation $#tableau, qui renvoie l'index de fin du tableau (attention, les index commencent à zéro), ou utiliser la fonction scalar(@tableau), qui renvoie le nombre d'éléments contenus dans le tableau.
Certaines personnes vous diront qu'il suffit d'utiliser la variable de tableau dans un contexte scalaire (par exemple une addition), ce qui est syntaxiquement exact, mais mon expérience personnelle m'a conforté dans l'utilisation de scalar, qui a le mérite de rendre la conversion explicite. À vous de choisir... Comme l'exprime de manière appropriée un des slogans de perl : Il y a plus d'une manière de faire2.6.
On peut sans problème effectuer des affectations de liste à liste, ce qui donne par exemple un moyen efficace d'échanger deux variables :
($a, $b) = ($b, $a); @tableau1 = @tableau2;
De la même manière que pour les variables scalaires, la variable @_ est prise comme argument par défaut pour de nombreuses fonctions.