Ho bisogno Esportatore se sto andando per puro OO in Perl?
-
21-08-2019 - |
Domanda
La documentazione (esportatore e perlmodlib) dicono:
Come regola generale, se il modulo è cercando di essere orientato agli oggetti allora esportazione nulla.
Ma poi perlmodlib dice anche:
standard, moduli di base sono tutti dovrebbe comportarsi in un ben definito modo rispetto al namespace inquinamento perché usano il Modulo Esportatore.
Allora mi chiedo, se si va OO ed esportare nulla, non si ha realmente bisogno Esportatore? Se non lo fai, vuol dire che nessuno dei moduli standard sono strettamente OO in questo senso, o significa che EXPORT_OK
alcune cose perché è necessario farlo se qualcuno vuole ereditare da modulo? (È vero?) Oppure avete bisogno Exporter solo per essere in grado di use MyModule; ... = new MyModule
?
Soluzione
Hai ragione. Se tutto sarà chiamato OGGETTO :: sub () o $ obj-> sub (), si dovrebbe andare bene.
Per l'eredità, si sta andando a voler utilizzare @ISA, e per questo, non dovrebbe essere necessario esportatore.
Inoltre, la seconda citazione hai dato è per quanto riguarda i dati esportati versando in un modulo.
Se si utilizza: use libname ();
contro un lib che esporta utilizzando l'Exporter, si sono garantiti per esportare nulla. Ecco come può essere usato per prevenire l'inquinamento dello spazio dei nomi. Se si esporta in modo esplicito dal nome della funzione, quelle sono le uniche funzioni che si ottiene.