Contestuale :: ritorno

contestuale :: Ritorna è un modulo perl per creare valori di ritorno del contesto-senstivo.
Scarica ora

Contestuale :: ritorno Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Damian Conway
  • Sito web dell'editore:
  • http://search.cpan.org/~dconway/

Contestuale :: ritorno Tag


Contestuale :: ritorno Descrizione

Contestuale :: Ritorna è un modulo perl per creare valori di ritorno del contesto-senstivo. Contestuale :: Ritorna è un modulo Perl per creare valori di ritorno del contesto-senstivo.Synopsis Utilizzare contestuale: return; usa la carpa; Sub Foo {return Scalare {'Trenta-dodici'} BOOL {1} NUM {7 * 6} STR {'quarantadue'} lista {1,2,3} Hashref {{name => 'foo', valore = > 99}} Arrayref {} Globref {* stdout} coderef {cloak "Non usare questo risultato come codice!"; }; } # e successivamente ... if (My $ foo = foo ()) {per il mio conto $ (1 .. $ foo) {stampa "$ conteggio: $ foo è: n". "Array: @ @ {$ foo} n". "hash: $ foo -> {name} => $ foo -> {value} n"; } Stampa {$ foo} $ fooo -> (); } Di solito, quando è necessario creare una subroutine che restituisce valori diversi in diversi contesti (elenco, scalare o vuoto), scrivi qualcosa come: sub get_server_status {my ($ server_id) = @_; # Acquisire i dati del server in qualche modo ... My% Server_Data = _ascerta_server_status ($ server_id); # Restituisce componenti diversi di tali dati, # A seconda del contesto della chiamata ... se (Wantarray ()) {return @server_data {qw (nome uptime caricamento degli utenti)}; } se (Definito Wantarray ()) {RETURN $ Server_Data {Load}; } se (! Defined Wantarray ()) {carpa 'uso inutile di get_server_status () nel contesto vuoto "; Restituzione; } else {croak q {cattivo contesto! Nessun biscotto!}; }} Che funziona bene, ma il codice potrebbe certamente essere più leggibile. Nel suo utilizzo più semplice, questo modulo rende quel codice più leggibile fornendo tre subroutine - elenco (), scalare (), void () - che sono vere solo quando la subroutine corrente viene chiamata nel contesto corrispondente: utilizzare contestuale :: Ritorno; sub get_server_status {my ($ server_id) = @_; # Acquisire i dati del server in qualche modo ... My% Server_Data = _ascerta_server_status ($ server_id); # Restituisci diversi componenti di tale dati # A seconda del contesto delle chiamate ... IF (Elenco) {RETURN @Server_Data {QW (Nome Uptime Carica gli utenti)}} se (scalare) {return $ server_data {load}} se (void) { Stampa "$ server_data {load} n"} else {croak q {cattivo contesto! Nessun biscotto!}}}} Contestuale Returnsthose Tre subroutine possono anche essere utilizzate in un altro modo: come etichette su una serie di blocchi di ritorno contestuale (conosciuti collettivamente come sequenza di contesto). Quando viene restituita una sequenza di contesto, seleziona automaticamente il blocco di ritorno contestuale appropriato per il contesto di chiamata. Quindi l'esempio precedente potrebbe essere scritto ancora più pulito come: utilizzare contestuale :: ritorno; sub get_server_status {my ($ server_id) = @_; # Acquisire i dati del server in qualche modo ... My% Server_Data = _ascerta_server_status ($ server_id); # Restituisci diversi componenti di quel numero di dati A seconda del contesto delle chiamate ... Ritorno (Elenco {Ritorno @Server_Data {QW (Nome Uptime Carica gli utenti)}} Scalare {RETURN $ $ Server_Data {Load}} Void {Stampa "$ $ server_data {load} n "} predefinito {croak q {cattivo contesto! Nessun biscotto!}}); } La sequenza di contesto seleziona automaticamente il blocco appropriato per ciascun contesto di chiamata. Requisiti: · Perl. · Versione.PM. · Want.pm.


Contestuale :: ritorno Software correlato