Autoloader

Autoloader è un modulo Perl in grado di caricare le subroutine solo su richiesta.
Scarica ora

Autoloader Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • The Perl5-Porters
  • Sito web dell'editore:
  • http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoader.pm

Autoloader Tag


Autoloader Descrizione

Autoloader è un modulo perl che può caricare subroutine solo su richiesta. AutoLoader è un modulo perl che può caricare subroutine solo su richiesta. PACCHETTO DISYNOPSIS FOO; Utilizzare Autoloader 'Autoload'; # Importa la barra del pacchetto di subroutine Autoload predefinita; utilizzare Autoloader; # Non importare Autoload, definire il nostro sub Autoload {... $ Autoloader :: Autoload = "..."; goto autoloader :: autoload; } Il modulo AutoLoader funziona con il modulo Autosplit e il token __end__ per rinviare il caricamento di alcune subroutine fino a quando non vengono utilizzati piuttosto che caricarli tutti in una sola volta. Per utilizzare AutoLoader, l'autore di un modulo deve posizionare le definizioni di subroutine da essere Autoloaded dopo un token __end__. (Vedere Perldata.) Il modulo AutoSplit può quindi essere eseguito manualmente per estrarre le definizioni in singoli file AUTO / FUNCNAME.AL.AUTOLOADER ATTUALIMENTARE UN AUTOLOAD SUBROUTINE. Quando una subroutine non definita in viene chiamata in un modulo client di Autoloader, la subroutine Autoload dell'autoloader tenta di individuare la subroutine in un file con un nome relativo alla posizione del file da cui è stato letto il modulo client. Ad esempio, se posix.pm si trova in /usr/local/lib/perl5/posix.pm/Perl5/posix.pm, AutoLoader cercherà le subroutine Perl Posix in /USR/Local/lib/perl5/auto/posix/*.al, dove Il file .AL ha lo stesso nome della subroutine, pacchetto sans. Se esiste un tale file, Autoload leggerà e valuterà, quindi (presumibilmente) definendo la subroutine necessaria. Autoload GOTO GOTO La soloroutine appena definita. Questo processo è stato completato per una determinata funzione, è definito, quindi le chiamate future alla subroutine bypassare il meccanismo Autoload.Subroutine Stubsin per il metodo dell'oggetto Ricerca e / o prototipo Controllo del controllo corretto Quando i metodi non sono stati ancora definiti, è necessario "inoltrare" dichiarare "ciascuna subroutine (come nel sottoscambio;). Vedi "Sinossi" in Perlsub. Tale dichiarazione avanzata crea "Stubs subroutine", che sono supportati dai supporti senza codice. I moduli Autosplit e Autoloader automatizzano la creazione di dichiarazioni in avanti. Il modulo AutoSplit crea un file "indice" contenente dichiarazioni avanzate di tutte le subroutine Autosplit. Quando il modulo AutoLoader è "Usa, carichi queste dichiarazioni nel suo pacchetto dei chiamanti.Perché di questo meccanismo è importante che il caricatore automatico sia sempre usato e non richiesto. Autoloader Autoload Subroutinein Ordine per utilizzare Autoloader's Autoload Subroutine Devi importò esplicitamente: Utilizzare AutoLoader 'Autoload'; Sovrapposizione dei moduli di suboroutine Autoloader, principalmente estensioni, forniscono le proprie subroutine di autoload. In genere hanno bisogno di verificare che alcuni casi speciali (come costanti) e quindi il fallback per Autoload dell'autoloader per i moduli di riposo per i moduli di riposo. Invece, dovrebbero definire le proprie subroutine di autoload lungo queste linee: utilizzare Autoloader; usa la carpa; Sub Autoload {My $ Sub = $ Autoload; (My $ CONSTNAME = $ SUB) = ~ S /.* :: //; My $ VAL = costante ($ CONSTNAME, @_? $ _ : 0); Se ($!! = 0) {IF ($! = ~ / non valido / || $! {EINVAL}) {$ AutoLoader :: Autoload = $ sub; goto autoloader :: autoload; } else {croak "Il tuo venditore non ha definito costante $ costname"; }} * $ sub = sub {$ val}; # Come: Eval "Sub $ sub {$ VAL}"; goto $ sub; } Se la subroutine Autoload del modulo non ha alcuna necessità di fallback alla subroutine di autoload dell'autoloader (poiché non dispone di subroutine automatiche), il modulo non deve utilizzare Autoloader a tutti.Package Lexical Lexicals LexicalSpackage dichiarato con il mio blocco principale di Un pacchetto che utilizza automaticamente il caricatore non sarà visibile alle subroutine caricate automaticamente, a causa del fatto che l'ambito specificato termina al marker __end__. Un modulo che utilizza tali variabili come pacchetti globali non funzionerà correttamente sotto il caricatore automatico. È possibile utilizzare i vars Pragma (vedere "Vars" in Perlmod) in tali situazioni come alternativa a qualificare esplicitamente tutti i globali con lo spazio dei nomi del pacchetto. Le variabili pre-dichiarate con questo PRAGMA saranno visibili a qualsiasi routine automatico di Autoloaded (ma non saranno invisibili al di fuori del pacco, purtroppo). Non usare Autoloadyou può smettere di usare Autoloader semplicemente senza Autoloader; Autoloader contro SelfloaderLa Autoloader è simile a SelfOgnaer : Entrambi ritardano il caricamento delle subroutine.Selfloader utilizza il marcatore __Data__ anziché __end__. Mentre questo evita l'uso di una gerarchia di file del disco e l'apertura / chiusa associata per ciascuna routine caricata, il selfloadloader soffre di uno svantaggio della velocità di avvio nell'anità di analisi una tantum delle linee dopo __data__, dopodiché le routine vengono memorizzate nella cache. Il selfloader può anche gestire più pacchetti in un file.AutoLaoloader legge solo il codice come richiesto e in molti casi dovrebbe essere più veloce, ma richiede un meccanismo come AutoSplit essere utilizzato per creare i singoli file. Extutils :: Makemaker invocherà automaticamente Autosplit se AutoLoader viene utilizzato in un file sorgente del modulo. Requisiti: · Perl.


Autoloader Software correlato

Copix.

Copix è un framework multifunzione per applicazioni Web PHP. ...

169

Scarica

Pdcontainer.

PDContainer è una biblioteca fatta per la composizione algoritmica e ovviamente per tutti gli altri algoritmi. ...

152

Scarica