2009-11-23 11 views
6

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 

Cela a-t-il affecté des fonctions telles que split ou des tokenizers ou des expressions régulières?

+1

Toutes les variables de Perl sont documentées en perlvar. –

+4

Sauf si vous utilisez perl 5.10. Il documente toutes les variables de Perl, mais pas les variables abandonnées. – innaM

+0

Vous pouvez trouver une version donnée de la documentation, par exemple. http://search.cpan.org/dist/perl-5.8.5 – ysth

Répondre

16

est ici une partie de la production de perldoc perlvar:

$ * Définir une valeur de nombre entier non nul pour faire de la correspondance sur plusieurs lignes dans une chaîne, 0 (ou non définie) pour dire Perl que peut supposer que les chaînes contiennent une seule ligne , dans le but d'optimiser correspondances de modèle. Les correspondances de motifs sur les chaînes contenant plusieurs retours à la ligne peuvent produire des résultats déroutants lorsque $ * est 0 ou indéfini. La valeur par défaut est indéfini. (Mnémonique: * correspond à plusieurs choses.) Cette variable influence l'interprétation de seulement "^" et "$". Une nouvelle ligne littérale peut être recherchée même lorsque "$ * == 0".

Utilisation de $ * est dépréciée dans moderne Perl, supplanté par les "/ s" et "/ m" 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 implicite " int "est appliqué sur la valeur .

+0

Merci! (J'ai eu du mal à trouver le '$ *' en utilisant google, puisque ce moteur de recherche ignore ces mots-clés.) – scraimer

+2

@scraimer: Vous devez d'abord consulter la documentation installée sur votre ordinateur: '$ perldoc perltoc' –

+0

Sauf que la documentation installée sur mon ordinateur est pour Perl 5.10, et depuis que $ * 'a été interrompu par cette version, la documentation ne l'a plus. – scraimer