Qu'est-ce que la variable Perl $ * utilisé pour faire?
-
21-09-2019 - |
Question
J'ai un code de http://www.hyllander.org/node/23 qui utilise $*
( "astérisque dollar" ou "star dollar"), mais ma version des rapports perl:
$* is no longer supported at migrate.pl line 284.
Savez-vous quels sont les effets secondaires de faire
$*=1
Ne qui affectent en quelque sorte des fonctions comme split
ou tokenizers ou des expressions régulières?
La solution
Voici une partie de la sortie de perldoc perlvar
:
$ * Définir une valeur entière non nulle à faire plusieurs lignes correspondant à l'intérieur d'une chaîne de caractères, 0 (ou non définie) pour dire Perl qu'il peut supposent que les chaînes contiennent une seule ligne, dans le but d'optimiser correspond au modèle. Motif sur des chaînes contenant plusieurs newlines peut produire des résultats quand $ * est 0 ou non défini. Par défaut indéfini. (Mnémonique: * matchs plusieurs choses.) Cette variable influe sur l'interprétation de seulement "^" Et "$". Un retour ligne peut être recherché même si "$ * == 0".
L'utilisation de $ * est dépréciée dans moderne Perl, supplanté par les "/ s" et "/ m" des modificateurs sur correspondance de motif.
Affectation d'une valeur non numérique à $ * déclenche un avertissement (et fait agir $ * si "$ * == 0"), tout en attribuant une valeur numérique à $ * fait qu'un « Int » implicite est appliquée sur la valeur.