Che cosa ha fatto $ * variabile di Perl usato per fare?
-
21-09-2019 - |
Domanda
Ho qualche codice http://www.hyllander.org/node/23 che utilizza $*
( "dollaro asterisco" o "dollaro stella"), ma la mia versione di Perl rapporti:
$* is no longer supported at migrate.pl line 284.
Sai che cosa sono stati gli effetti collaterali di fare
$*=1
Lo che influenzano in qualche modo funzioni come split
o tokenizers o espressioni regolari?
Soluzione
Ecco una parte della produzione di perldoc perlvar
:
$ * Impostare su un valore intero diverso da zero per fare multi-linea corrispondenza all'interno di una stringa, 0 (o non definito) per dire a Perl che possa presumono che le stringhe contengono un singolo linea, allo scopo di ottimizzare modello corrisponde. Modello corrisponde a stringhe contenenti più a capo in grado di produrre risultati confusi quando $ * è 0 o non definito. Il valore predefinito è non definito. (Memo: * le partite le cose più.) Questa variabile influenza l'interpretazione di soli "^" E "$". Un ritorno a capo letterale può essere cercato anche quando "$ * == 0".
Utilizzo di $ * è deprecato nella moderna Perl, soppiantato dai "/ s" e "/ m" modificatori di pattern matching.
L'assegnazione di un valore non numerico a $ * innesca un avvertimento (e rende $ * atto se "$ * == 0"), mentre l'assegnazione di un valore numerico a $ * fa che un implicito "int" viene applicato sulla valore.