bonjour,
si on considère la classe Perl my::app::subject::SomeClass.pm, comment appelle-t-on le chemin my::app::subject:: de la classe ?
Java appellerait ça "package" de la classe Someclass mais est-ce correct dans le jargon perl ?
Merci
bonjour,
si on considère la classe Perl my::app::subject::SomeClass.pm, comment appelle-t-on le chemin my::app::subject:: de la classe ?
Java appellerait ça "package" de la classe Someclass mais est-ce correct dans le jargon perl ?
Merci
Le package, en langage perl, est la classe elle-même (ici my::app::subject::SomeClass). C'est pour cela qu'on utilise le mot clé package en début de fichier :
Pour la partie my::app::subject::, je ne lui connais pas de nom. Un package perl définit en fait un "espace de nom". On pourrait donc dire que my::app::subject est un espace de nom... mais rien n'impose, quand on déclare my::app::subject::SomeClass que l'espace de nom my::app::subject existe réellement. Il est seulement nécessaire que le module SomeClass.pm soit situé dans une arborescence my/app/subject depuis l'une des racines définie pour les librairies perl.
Code : Sélectionner tout - Visualiser dans une fenêtre à part package my::app::subject::SomeClass;
C'est mon interprétation personnelle, qui je pense, reflète assez bien la philosophie de perl 5.
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
Merci !
Espace de noms me semble pas mal.
Je ne comprends pas bien ce que tu veux dire par mais rien n'impose, quand on déclare my::app::subject::SomeClass que l'espace de nom my::app::subject existe réellement..
Ce que je veux dire, c'est que le nommage d'un espace de nom est arbitraire, et que la seule cohérence à respecter concerne le chemin du module qui défini un tel espace de nom.
Si l'espace de nom est composé de my::app::subject::SomeClass, rien n'impose qu'il existe un package my::app::subject, de même qu'un package my::app ou même de my.
Le nom que je donne ici ressemble à celui des espaces de nommage en XML. Il me semble que la sémantique est également similaire.
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager