Certaines variables spéciales sont définies dans le langage Perl, généralement préfixées par $, @ ou %, par exemple : $_.
De nombreuses variables spéciales ont un long nom anglais. La variable du système d'exploitation $! peut être écrite sous la forme $OS_ERROR.
Si vous souhaitez utiliser des variables spéciales avec des noms anglais, vous devez ajouter use English en tête du programme ; Cela permet l'utilisation de variables spéciales descriptives en anglais.
La variable spéciale la plus couramment utilisée est $_, qui contient le contenu d'entrée et de correspondance de modèles par défaut. Les exemples sont les suivants :
En exécutant le programme ci-dessus, le résultat de sortie est :
GoogleCoderctoTaobao
Dans les exemples suivants, nous n'utilisons pas $_ pour afficher le contenu :
En exécutant le programme ci-dessus, le résultat de sortie est :
GoogleCoderctoTaobao
Dans l'exemple, "Google" est affiché en premier, puis "Codercto" est affiché et enfin "Taobao" est affiché.
Dans une boucle itérative, la chaîne de la boucle actuelle sera placée dans $_, puis sortie via print. De plus, print ne spécifie pas de variable de sortie et $_ est utilisé par défaut.
Voici quelques endroits où Perl assumera $_ même s'il n'est pas spécifié :
Diverses fonctions unaires, y compris des fonctions comme ord() et int() et toutes les opérations de test de fichiers ("-f", "-d") sauf "-t", qui fonctionne sur STDIN par défaut.
Diverses fonctions de liste telles que print() et unlink().
Opérations de correspondance de modèles "m//", "s///" et "tr///" sans l'opérateur "=~".
La variable d'itération par défaut pour "foreach" boucle lorsqu'aucune autre variable n'est donnée.
Variables d'itération implicites pour les fonctions grep() et map().
Lorsque « while » n’a qu’une seule condition et que cette condition teste le résultat de l’opération « », $_ est l’emplacement par défaut de l’enregistrement d’entrée. Cela ne se produit que dans des conditions de test « while ». (Mnémonique : le trait de soulignement peut être omis dans certaines opérations.)
Selon la nature de l'utilisation des variables spéciales, elles peuvent être divisées dans les catégories suivantes :
Variable spéciale scalaire globale.
Variables spéciales du tableau global.
Variable spéciale de hachage global.
Descripteur de fichier spécial global.
Constantes spéciales globales.
Variables spéciales d'expression régulière.
Variable spéciale de gestion de fichier.
Ce qui suit répertorie toutes les variables spéciales scalaires, y compris les variables avec des caractères spéciaux et les formes anglaises :
$_ | Contenu d'entrée et de correspondance de modèle par défaut. |
$ARG | |
$. | Le numéro de ligne actuel du descripteur de fichier lu pour la dernière fois |
$NR | |
$/ | Entrez le séparateur d'enregistrement, qui est par défaut un nouveau caractère de ligne. Si vous utilisez la variable undef, la fin du fichier sera lue. |
$RS | |
$, | Séparateur de champ de sortie |
$OFS | |
$ | Séparateur d'enregistrement de sortie |
$ORS | |
$" | Cette variable est similaire à $, mais doit être utilisée pour interpoler les valeurs de tableau et de tranche en chaînes entre guillemets (ou chaînes interpolées similaires). La valeur par défaut est un espace. |
$LIST_SEPARATOR | |
$ ; | Délimiteur utilisé lors de la simulation de tableaux multidimensionnels. La valeur par défaut est " |