Kontextualität :: Rückkehr.

Contextual :: Return ist ein Perl-Modul, um kontextsenkende Rückgabewerte zu erstellen.
Jetzt downloaden

Kontextualität :: Rückkehr. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Damian Conway
  • Website des Verlags:
  • http://search.cpan.org/~dconway/

Kontextualität :: Rückkehr. Stichworte


Kontextualität :: Rückkehr. Beschreibung

Contextual :: Return ist ein Perl-Modul, um kontextsenkende Rückgabewerte zu erstellen. Contextual :: Return ist ein Perl-Modul, um Kontext-Senstive-Rückgabewerte zu erstellen.Synopsis verwenden Kontextualität :: RETURN; Verwenden Sie Karpfen; SUB FOO {RETURN SCALAR {'Twelve'} bool {1} num {7 * 6} str {'Vanty-Two'} List {1,2,3} HashRef {{Name => 'foo', Wert = > 99}} arrayref {} globref {* stdout} collederef {croak "Verwenden Sie dieses Ergebnis nicht als Code!"; }; } # und später ... wenn (mein $ foo = foo ()) {für meine $ count (1 .. $ foo) {drucken "$ count: $ foo ist: n". "Array: @ {$ foo} n". "Hash: $ foo -> {Name} => $ foo -> {value} n"; } drucken {$ foo} $ foo -> (); } Normalerweise, wenn Sie eine Subroutine erstellen müssen, in der verschiedene Werte in verschiedenen Kontexten (Liste, Skalar oder Void) zurückgegeben werden, schreiben Sie etwas wie: Sub Get_Server_Status {My ($ server_id) = @_; # Serverdaten erwerben irgendwie ... my% server_data = _Auscis_Server_status ($ server_id); # Geben Sie verschiedene Komponenten dieser Daten zurück, # je nach Anrufkontext ... Wenn (W-Nager ()) {Return @Server_Data {QW (NAME UPTAY-LAD-Benutzer)}; } Wenn (definiert W-Array ()) {Return $ server_data {load}; } Wenn (! Defined W-Array ()) {Carp 'nutzlose Verwendung von get_server_status () in ungültiger Kontext'; Rückkehr; } else {croak q {bad context! Kein Keks!}; }} Das funktioniert in Ordnung, aber der Code könnte sicherlich lesbarer sein. In seiner einfachsten Nutzung macht dieses Modul diesen Code, indem er drei Subroutinen - List (), scalar (), void (), void () -, die nur zutreffend ist, nur dann wahr, wenn die aktuelle Subroutine in dem entsprechenden Kontext aufgerufen wird: Verwenden Sie Contextual :: Zurückkehren; SUB GET_SERVER_STATUS {MY ($ server_id) = @_; # Serverdaten erwerben irgendwie ... my% server_data = _Auscis_Server_status ($ server_id); # Geben Sie verschiedene Komponenten dieser Daten auf, je nach Anrufkontext ... Wenn (List) {Return @Server_Data {QW (NAME-NAME-LOAD-Benutzer)}}}}}} {scalar) {return $ server_data {load}} if (void) { drucken "$ server_data {load} n"} else {croak q {bad context! Kein Keks!}}} Contextual Returnsthose Drei Unterprogramme können auch in einer anderen Weise verwendet werden: als Etiketten in einer Reihe von kontextabhängigen Rückgabeblöcken (kollektiv als Kontextsequenz). Wenn eine Kontextsequenz zurückgegeben wird, wählt sie automatisch den entsprechenden kontextabhängigen Rendite-Block für den anrufenden Kontext aus. Das vorherige Beispiel könnte also noch sauberer geschrieben werden wie: Verwenden Sie Contextual :: Return; SUB GET_SERVER_STATUS {MY ($ server_id) = @_; # Serverdaten erwerben irgendwie ... my% server_data = _Auscis_Server_status ($ server_id); # Geben Sie verschiedene Komponenten dieser Daten an n "} default {croak q {bad context! Kein Keks!}}); } Die Kontextsequenz wählt für jeden Anrufkontext automatisch den entsprechenden Block aus. Anforderungen: · Perl. · Version.pm. · Want.PM.


Kontextualität :: Rückkehr. Zugehörige Software