Passage d'une Fonction de l'Objet et de l'Appeler
Comment puis-je passer d'une fonction, a
, à la fonction, b
, et ont b
appel a
en Perl?
Vous devez vous connecter pour publier un commentaire.
Comment puis-je passer d'une fonction, a
, à la fonction, b
, et ont b
appel a
en Perl?
Vous devez vous connecter pour publier un commentaire.
Voici un travail terminé, le script qui montre ce que vous demandez.
Voici une explication: vous prenez une référence à la fonction
a
en disant\&a
. À ce stade, vous avez une fonction de référence; alors que normalement une fonction serait appelé en disantfunc()
vous appelez une fonction de référence en disant$func->()
La
->
syntaxe de traiter avec d'autres références. Pour exemple, voici un exemple de traiter avec le tableau de hachage et de références:$args{function}()
;, mais qui peut être un peu déroutant.sub a
a des arguments?$func->(5, 6)
Vous ne pouvez pas passer d'une fonction à une autre fonction directement. Au lieu de cela, vous passez un référence à une fonction. Pour appeler la fonction déréférencement (comme un CODE réf) à l'aide de
->()
;Perl n'a pas de passe-par-nom de la sémantique mais vous pouvez les imiter à l'aide d'un algorithme de hachage. La méthode de l'appel de la fonction est la même. Vous déréférencement d'elle.
ObPerl6: Perl 6 devront passer par le nom de la sémantique.
Vous pouvez accéder à des sous-routines références
\&my_method
en Perl, et d'appeler ces références avec$myref->();
. Essayez ceci:Bonne chance!
Suivantes jusqu'à Eli Courtwright exemple: Si vous utilisez uniquement la première fonction qu'une seule fois, vous pouvez aussi appeler
b
avec une fonction anonyme, comme ceci: