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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top