J'ai une question sur les modules, les modules et la syntaxe. Lorsque vous accédez à un paquet dans le même fichier que je remarque que vous souhaitez utiliser quelque chose comme ....Lors de l'accès aux modules
package test;
$testVar="This is a test";
#and to access it using..
package main;
print($test::testVar);
... ou tout simplement
package test;
print($testVar);
Pourtant, quand j'utilise cette syntaxe pour une utilisation avec un module, en envoyant un argument, je suis censé ommiter le $ depuis le début de la fonction d'impression, mais au-dessus je ne le fais pas. J'ai remarqué que ça ne fonctionnait pas autrement et je ne sais pas pourquoi. Mes matériaux ne clarifient pas.
require module;
print(package::sub("argument"));
Pourquoi est-ce? Je suis confus.
Les ampersands ne sont pas dépréciés de quelque façon que ce soit. Certaines personnes ne les aiment pas et elles sont souvent inutiles, et utiliser & sans utiliser() crée un type spécial de sous-appel qui n'est généralement pas prévu. Ce dernier bit est parfois utilisé comme argument contre l'utilisation de & en général, mais je ne le trouve pas convaincant. – ysth
@ysth commentaire juste. J'ai reformulé et ajouté quelques liens pour développer ce peu. – Dancrumb
Je sorte de, comprendre. Je pensais que vous alliez dire, dans le cas du module, que le script ne se trouve pas dans la même table main :: symbol. Je suis très nouveau à Perl pour être honnête et ça m'a donné quelques problèmes. –