J'ai une classe de base comme celui-ci:Comment puis-je partager des variables entre une classe de base et une sous-classe en Perl?
package MyClass;
use vars qw/$ME list of vars/;
use Exporter;
@ISA = qw/Exporter/;
@EXPORT_OK = qw/ many variables & functions/;
%EXPORT_TAGS = (all => \@EXPORT_OK);
sub my_method {
}
sub other_methods etc {
}
--- more code---
Je veux sous-classe MyClass
, mais seulement pour une méthode.
package MySubclass;
use MyClass;
use vars qw/@ISA/;
@ISA = 'MyClass';
sub my_method {
--- new method
}
Et je veux appeler cette MySubclass
comme je le ferais le MyClass
original, et ont encore accès à toutes les variables et les fonctions de Exporter
. Cependant, j'ai des problèmes pour obtenir les variables Exporter
de la classe d'origine, MyClass
, pour exporter correctement. Dois-je exécuter à nouveau Exporter
à l'intérieur de la sous-classe? Cela semble redondant et peu clair.
fichier Exemple:
#!/usr/bin/perl
use MySubclass qw/$ME/;
-- rest of code
Mais je reçois des erreurs de compilation lorsque je tente d'importer la variable $ME
. Aucune suggestion?
Toujours inclure le message d'erreur que vous obtenez. –
Eh bien dans ce cas particulier, je reçois juste une erreur interne du serveur lorsque j'essaie d'utiliser "MySubclass qw/$ ME /;" même quand il est dans un eval: "eval {use MySubclass qw/$ ME /;};", cependant si je dis juste "eval {use MySubclass;};" tout est trouver et dandy – Jonathan
Données de classe + héritage = recette pour le brisement majeur, majeur sur la route. – hobbs