Question

J'essaie de comprendre le code Perl de quelqu'un d'autre sans trop connaître Perl moi-même. J'apprécierais votre aide.

J'ai rencontré une fonction Perl selon ces lignes:

MyFunction($arg1,$arg2__size,$arg3)

La syntaxe à double tiret bas a-t-elle une signification dans $ arg2 , ou s'agit-il simplement du nom du deuxième argument?

Était-ce utile?

La solution

L'utilisation d'un __ dans un nom de variable Perl n'a pas de signification particulière. C'est probablement la préférence du programmeur, en particulier dans le cas que vous avez cité dans votre question. Vous pouvez voir plus d'informations sur l'attribution de nom à la variable Perl ici .

Autres conseils

Comme dans la plupart des langues, le trait de soulignement fait simplement partie d'un identifiant; pas de signification particulière.

Mais êtes-vous sûr que c'est Perl? Il n'y a pas de sigils sur les variables. Pouvez-vous publier plus de contexte?

En ce qui concerne l'interprète, un trait de soulignement est simplement un autre caractère autorisé dans les identificateurs. Il peut être utilisé comme alternative à la concaténation ou à la casse du chameau pour former des identifiants à plusieurs mots.

Un tiret bas est souvent utilisé pour indiquer qu'un identifiant est destiné à un usage local uniquement, par exemple par exemple pour les parties non exportées d'un module. C'est simplement une convention. l'interprète s'en fiche.

Dans le contexte de votre question, le double trait de soulignement n'a aucune signification programmatique. Double soulignement signifie quelque chose de spécial pour un nombre limité de valeurs en Perl, notamment __ FILE __ & amp; __ LINE __ . Ce sont des littéraux spéciaux qui ne portent pas le préfixe ( $ , % ou @ ) et sont uniquement interpolés en dehors des guillemets. Ils contiennent le chemin complet & amp; nom du fichier en cours d'exécution et de la ligne en cours d'exécution. Voir la section sur les "littéraux spéciaux" dans perldata ou ce message sur Perl Monks

Je suis à peu près certain que arg2__size n'est que le nom d'une variable.

La réponse de Mark est bien sûr correcte, elle n’a aucune signification particulière.

Mais je tiens à noter que votre exemple ne ressemble pas du tout à Perl. Les variables Perl ne sont pas nues. Ils ont les sceaux, comme vous le verrez à partir des liens ci-dessus. Et Perl n'a pas de "fonctions", il a des sous-programmes.

Il peut donc y avoir une certaine confusion quant à la langue dont nous parlons.

Vous devez dire à l'interprète que " $ arg2 " est le nom d'une variable. et pas "$ arg2__size". Pour cela, vous devrez utiliser la parenthèse. (Cet usage est similaire à celui observé dans le shell).

Cela devrait fonctionner MyFunction ($ arg1, $ {arg2} __ taille, $ arg3)

- Binu

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top