9
votes

Quelle est la différence entre `usage de base` et @isa à Perl?

Je veux faire une classe Singleton qui prolonge DBI. devrais-je faire quelque chose comme ceci: xxx

ou ceci: xxx

ou quelque chose d'autre?

pas vraiment Bien sûr, quelle est la différence entre "user base" et "isa".


1 commentaires

Eh bien, la documentation de base.pm vous indique la différence.


4 Réponses :


4
votes

Je pense que vous devriez utiliser le parent pragma au lieu de base comme a été suggéré dans Perldoc Base . .


2 commentaires

Est-ce que "parent" neuf en 5.10? Ce doit être, car ce n'est pas dans ma documentation 5.8.


Je ne suis pas sûr. Toutefois, citant la déclaration de Chas: "... Le Pragma parent est nouveau à partir de Perl 5.10.1, mais il est immobile de CPAN si vous avez une version plus ancienne de Perl. ..."



8
votes

L'utilisation typique de @isa est xxx

la base base et parent pragmas à la fois charger le Classe demandée et modifier @isa pour l'inclure: xxx

Si vous souhaitez héritage multiple, vous pouvez fournir plusieurs module à BASE ou parent : xxx

le parent pragma est nouveau à partir de Perl 5.10.1, mais il est installable de CPAN si vous avez une version plus ancienne de Perl. Il a été créé car la base Pragma était devenue difficile à maintenir en raison de "Cruft qui l'avait accumulée". Vous ne devriez pas voir une différence dans l'utilisation de base entre les deux.


0 commentaires

3
votes

de la base de Perldoc ... xxx

est essentiellement équivalent à xxx

personnellement, j'utilise base. < / p>


1 commentaires

La dernière base.pm dit aux gens d'utiliser le parent, qui est en 5.10.1. :)



0
votes

Si vous souhaitez hériter de la classe mère, vous devez le charger et modifier @isa. Ces deux étapes sont prises en charge lorsque vous utilisez la base. La base charge le module pour vous et modifiez @isa en conséquence. Sinon, vous devez modifier @isa et charger le module parent par vous-même.

Les deux éléments suivants sont équivalents: xxx

et xxx


0 commentaires