Contesto :: Preserve.

Esegui il codice dopo una chiamata di subroutine, preservando il contesto La subroutine avrebbe visto se fosse l'ultima affermazione nel chiamante
Scarica ora

Contesto :: Preserve. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Jonathan Rockway
  • Sito web dell'editore:
  • http://search.cpan.org/~jrockway/

Contesto :: Preserve. Tag


Contesto :: Preserve. Descrizione

Esegui il codice dopo una chiamata di subroutine, preservando il contesto La subroutine avrebbe visto se fosse l'ultima affermazione nel chiamante Context :: Preserve è un modulo Perl che ti aiuta a eseguire il codice dopo una chiamata di subroutine, preservare il contesto La subroutine avrebbe visto se fosse l'ultima dichiarazione nel chiamante.synopsishave che hai mai scritto? My ($ Risultato, @result); # Esegui un sub nel contesto corretto se (! Defined Wantarray) {alcuni :: Code (); } Elsif (Wantarray) {@Result = alcuni :: Code (); } else {$ Risultato = alcuni :: codice (); } # Fai qualcosa dopo alcuni :: Code $ _ + = 42 per (@Result, $ Risultato); # finalmente restituire il valore corretto se (! Defined Wantarray) {return; } Elsif (Wantarray) {return @result; } else {return $ Risultato; } Ora puoi semplicemente scrivere questo: usa il contesto :: Preserve; Ritorna Preserve_Context {alcuni :: Code ()} dopo => Sub {$ _ + = 42 per @_}; A volte è necessario chiamare una funzione, ottenere i risultati, agire sui risultati, quindi restituire il risultato della funzione. Questo è doloroso a causa dei contesti; La funzione originale può comportarsi diversi se si chiama in Void, scalare o un contesto elenco. Puoi ignorare i vari casi e semplicemente sceglierne uno, ma è fragile. Per fare le cose a destra, devi vedere il caso in cui ti chiami, quindi chiamare la funzione in quel contesto. Ciò si traduce in 3 percorsi di codice, che è un dolore da digitare (e mantenere). Questo modulo automatizza il processo. Fornisci un coderef che è la "funzione originale" e un altro coderef per funzionare dopo le esecuzioni originali. È possibile modificare il valore di ritorno (alias a @_) qui, e fare qualsiasi altra cosa devi fare. WantArray è corretto all'interno di entrambi i coderef; Nel "Dopo", tuttavia, il valore di ritorno viene ignorato e il valore di Valiguay Returns è correlato al contesto che la funzione originale è stata chiamata. Requisiti: · Perl.


Contesto :: Preserve. Software correlato