Perl - Types de données
Perl est un langage mal typé et il n'est pas nécessaire de spécifier un type pour vos données lors de l'utilisation dans votre programme. L'interpréteur Perl choisira le type en fonction du contexte des données elles-mêmes.
Perl a trois types de données de base: les scalaires, les tableaux de scalaires et les hachages de scalaires, également appelés tableaux associatifs. Voici un petit détail sur ces types de données.
N ° Sr. | Types et description |
---|---|
1 | Scalar Les scalaires sont des variables simples. Ils sont précédés d'un signe dollar ($). Un scalaire est un nombre, une chaîne ou une référence. Une référence est en fait l'adresse d'une variable, que nous verrons dans les prochains chapitres. |
2 | Arrays Les tableaux sont des listes ordonnées de scalaires auxquelles vous accédez avec un index numérique, qui commence par 0. Ils sont précédés d'un signe «at» (@). |
3 | Hashes Les hachages sont des ensembles non ordonnés de paires clé / valeur auxquels vous accédez en utilisant les clés comme indices. Ils sont précédés d'un signe de pourcentage (%). |
Littéraux numériques
Perl stocke tous les nombres en interne sous forme d'entiers signés ou de valeurs à virgule flottante double précision. Les littéraux numériques sont spécifiés dans l'un des formats à virgule flottante ou entier suivants -
Type | Valeur |
---|---|
Entier | 1234 |
Entier négatif | -100 |
Point flottant | 2000 |
Notation scientifique | 16.12E14 |
Hexadécimal | 0xffff |
Octal | 0577 |
Littéraux de chaîne
Les chaînes sont des séquences de caractères. Ce sont généralement des valeurs alphanumériques délimitées par des guillemets simples (') ou doubles ("). Ils fonctionnent un peu comme les guillemets shell UNIX où vous pouvez utiliser des chaînes entre guillemets simples et des chaînes entre guillemets doubles.
Les littéraux de chaîne entre guillemets autorisent l'interpolation de variables, contrairement aux chaînes entre guillemets simples. Il y a certains caractères lorsqu'ils sont précédés d'une barre oblique inverse, ont une signification particulière et ils sont utilisés pour représenter comme une nouvelle ligne (\ n) ou une tabulation (\ t).
Vous pouvez intégrer des nouvelles lignes ou l'une des séquences d'échappement suivantes directement dans vos chaînes entre guillemets -
Séquence d'échappement | Sens |
---|---|
\\ | Antislash |
\ ' | Simple citation |
\ " | Double citation |
\une | Alerte ou cloche |
\ b | Retour arrière |
\F | Saut de formulaire |
\ n | Nouvelle ligne |
\ r | Retour chariot |
\ t | Onglet horizontal |
\ v | Onglet vertical |
\ 0nn | Crée des nombres au format octal |
\ xnn | Crée des nombres au format hexadécimal |
\ cX | Contrôle les caractères, x peut être n'importe quel caractère |
\ u | Force le caractère suivant en majuscule |
\ l | Force le caractère suivant en minuscules |
\ U | Force tous les caractères suivants en majuscules |
\ L | Force tous les caractères suivants en minuscules |
\ Q | Barre oblique inverse tous les caractères non alphanumériques suivants |
\ E | Fin \ U, \ L ou \ Q |
Exemple
Voyons à nouveau comment les chaînes se comportent avec des guillemets simples et doubles. Ici, nous utiliserons les échappements de chaîne mentionnés dans le tableau ci-dessus et utiliserons la variable scalaire pour attribuer des valeurs de chaîne.
#!/usr/bin/perl
# This is case of interpolation.
$str = "Welcome to \ntutorialspoint.com!";
print "$str\n";
# This is case of non-interpolation.
$str = 'Welcome to \ntutorialspoint.com!';
print "$str\n";
# Only W will become upper case.
$str = "\uwelcome to tutorialspoint.com!";
print "$str\n";
# Whole line will become capital.
$str = "\UWelcome to tutorialspoint.com!";
print "$str\n";
# A portion of line will become capital.
$str = "Welcome to \Ututorialspoint\E.com!";
print "$str\n";
# Backsalash non alpha-numeric including spaces.
$str = "\QWelcome to tutorialspoint's family";
print "$str\n";
Cela produira le résultat suivant -
Welcome to
tutorialspoint.com!
Welcome to \ntutorialspoint.com!
Welcome to tutorialspoint.com!
WELCOME TO TUTORIALSPOINT.COM!
Welcome to TUTORIALSPOINT.com!
Welcome\ to\ tutorialspoint\'s\ family