Erreur: “impossible de localiser méthode de l'objet ”nouveau“ par paquet” en Perl
Je suis nouveau sur Perl, donc je vais avoir quelques problèmes avec la POO.
J'ai...
- connect4.pl
- Joueur.pm
Je suis en train d'utiliser le module "Joueur" dans connect4,pl, mais j'obtiens l'erreur: "impossible de localiser méthode de l'objet "nouveau" par paquet" lorsque j'essaie de créer une instance du module.
J'ai lu d'autres posts, mais je n'arrive pas à obtenir ce que leur problème était et comment il a été résolu...
Voici un des extraits (j'ai supprimé beaucoup de lignes, j'ai juste compris ce que je pensais important)
use Player;
my $temp_connect_four = Player -> new("parameters");
et
package connect4;
sub new{
#some variables
}
#more methods/subroutines
Quel est le problème?
- Est-ce votre colis
connect4
ouPlayer
? - Est-ce que votre Joueur de classe ont un
new()
méthode?
Vous devez vous connecter pour publier un commentaire.
Vous devez avoir quelque chose comme:
fichier: Player.pm
votre script principal, connect4.pl
MODIFIER
D'abord répondu ci-dessus, mais en se fondant sur le fait, que vous avez des problèmes pour comprendre comment les paquets perl doit être organisée, à mon avis vous avez besoin de plus de commentaires, de l'perl-débutant point de vue (comme moi). Vous n'aurez probablement obtenir beaucoup mieux et beaucoup plus de réponses précises à partir de perl-gourous.
Si vous commencez à apprendre OO avec perl, à mon humble avis, vous devriez commencer à utiliser le "Mo" ou "Moo" forfaits à partir de CPAN. Ils vous offre quelques belles "sucre", ce qui aide grandement vous commencez à faire de l'OO orientée vers des programmes en perl et vous permettent d'étendre votre colis plus tard à Moo?'s plus intelligent frère -> L'orignal.
Dois dire, ce n'est pas dire que vous n'aurez pas besoin d'apprendre les principes de base de perl OO.
Parce que la plupart des modules CPAN sont écrites, sans Mo?se et de nombreux programmes de ce que vous allez lire, écrit en traditionnel perl-OO, de sorte que vous sill besoin l'apprendre, mais (à partir de ma propre expérience) il a besoin d'un peu plus raide de la courbe d'apprentissage. Vous avez besoin de comprendre la structure du package, ce qui est un "bénédiction" et ainsi de suite. À l'aide de "Mo" (ou l'Orignal) vous permet de cacher beaucoup de choses, et vous apprendrez plus tard.
À l'aide de "Mo" vous aide à avoir des résultats plus rapides withot bien comprendre - pourquoi cela fonctionne. 😉 /Probablement, maintenant beaucoup de perl-experts commentaire cela comme une mauvaise méthode d'apprentissage. :)/
Le Joueur exemple à l'aide de "Mo" peut être écrit comme le suivant:
Fichier: Player.pm
fichier avec l'main.pl script:
de l'exécution de l'main.pl produit:
Comme vous pouvez le voir, le "Mo" vous offre GRATUITEMENT une "nouvelle" méthode. (et beaucoup d'autres choses aussi).
Vous avez vraiment besoin de lire: