Variables spéciales Perl
Le langage Perl définit certaines variables spéciales, 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 $!
Si vous souhaitez utiliser des variables spéciales avec des noms anglais, vous devez ajouter use English; à l'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. L'exemple est le suivant :
#!/usr/bin/perl foreach ('Google','php','Taobao') { print $_; print "\n"; }
Exécutez le programme ci-dessus, le résultat de sortie est :
Google php Taobao
Nous n'utilisons pas $_ pour afficher le contenu dans l'exemple suivant :
#!/usr/bin/perl foreach ('Google','php','Taobao') { print; print "\n"; }
Exécutez le programme ci-dessus, le résultat de sortie est :
Google php Taobao
Dans l'exemple, "Google" est affiché en premier, puis "php" est affiché et "Taobao" est enfin 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 choses comme ord() et int() De telles fonctions et toutes les opérations de test de fichiers ("-f", "-d") sauf "-t", qui exploite 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 utiliser l'opérateur "=~".
est la variable d'itération par défaut pour les boucles "foreach" lorsqu'aucune autre variable n'est donnée.
Variable d'itération implicite pour les fonctions grep() et map().
Lorsque "while" n'a qu'une seule condition et que la condition teste le résultat de l'opération "", $_ est l'emplacement par défaut pour stocker l'enregistrement d'entrée. Cela ne se produit que dans des conditions de test « while ». (Mnémonique : les traits de soulignement peuvent être omis dans des opérations spécifiques.)
Types de variables spéciales
Selon la nature de l'utilisation des variables spéciales, elles peuvent être divisées dans les catégories suivantes :
Variables spéciales scalaires globales.
Variable spéciale de tableau global.
Variable spéciale de hachage global.
Poignée de lime spéciale globale.
Constantes spéciales globales.
Variable spéciale d'expression régulière.
Variable spéciale de gestion de fichier.
Variables spéciales scalaires globales
Ce qui suit répertorie toutes les variables spéciales scalaires, y compris les caractères spéciaux et les variables en anglais :
$_ | Contenu de saisie par défaut et de correspondance de modèles. |
$ARG | |
$. | Numéro de ligne actuel du descripteur de fichier pour la dernière lecture |
$NR | |
$/ | Entrez le séparateur d'enregistrement, la valeur par défaut est le caractère de nouvelle ligne. Si vous utilisez la variable undef, la fin du fichier sera lue. |
$RS | |
$, | Séparateur de domaine 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 tranchedans des chaînes entre guillemets doubles (ou des chaînes interpolées similaires). La valeur par défaut est un espace. |
$LIST_SEPARATOR | |
$; | Le séparateur utilisé lors de la simulation de tableaux multidimensionnels est par défaut ". |
$OFMT | |
$? | Renvoie l'état de la dernière commande externe |
$CHILD_ERROR | |
$! | La valeur numérique de cette variable est la valeur de errno, et la valeur de la chaîne est la chaîne d'erreur système correspondante |
$OS_ERROR ou $ERRNO | |
$@ | Le message d'erreur de la commande eval. S'il est vide, cela signifie que la dernière commande eval a été exécutée avec succès |
$EVAL_ERROR | |
$$ | Le numéro du processus exécutant le script Perl actuel |
$PROCESS_ID ou $PID | |
$< | L'ID utilisateur réel du processus en cours |
$REAL_USER_ID ou $UID | |
$> | L'ID utilisateur effectif du processus en cours |
$EFFECTIVE_USER_ID ou $EUID | |
$( | L'ID utilisateur de groupe réel du processus en cours |
$ REAL_GROUP_ID ou $GID | |
$) | ID d'utilisateur de groupe effectif du processus en cours |
$EFFECTIVE_GROUP_ID ou $EGID | |
$0 | Contient le nom de fichier du script en cours d'exécution |
$PROGRAM_NAME | |
$[ | Tableau de tableaux L'indice d'un élément, qui est par défaut 0. |
$] | Numéro de version Perl |
$PERL_VERSION | |
$^D | Valeur de l'indicateur de débogage |
$DEBUGGING | |
$^E | Messages d'erreur étendus du système d'exploitation dans les environnements non UNIX |
$EXTENDED_OS_ERROR | |
$^F | Valeur maximale du descripteur de groupe de fichiers |
$SYSTEM_FD_MAX | |
$^H | Statut de vérification de la syntaxe activé par le compilateur |
$^I | Éditeur de contrôle intégré Valeur |
$INPLACE_EDIT | |
$^M | Taille du pool de mémoire de sauvegarde |
$^O | Nom du système d'exploitation |
$OSNAME | |
$^P | Variable interne spécifiant la valeur de débogage actuelle |
$PERLDB | |
$^T | À partir du début du nouveau siècle, l'heure en secondes à laquelle le script commence à s'exécuter |
$BASETIME | |
$^W | La valeur actuelle du commutateur d'avertissement |
$WARNING | |
$^X | Le nom du Code exécutable binaire Perl |
$EXECUTABLE_NAME | |
$ARGV | Le nom de fichier actuel lors de la lecture à partir du descripteur de fichier par défaut |
Variable spéciale de tableau global
@ARGV
| Liste des paramètres de ligne de commande passés au script
| @INC<🎜> | Liste des répertoires à rechercher lors de l'import de modules<🎜><🎜><🎜> | @F<🎜 > | Entrée de tableau à partir de la ligne de commande<🎜><🎜><🎜><🎜><🎜>Variable spéciale de hachage global<🎜>
|