Contextual :: retorno

Contextual :: Retorno es un módulo PERL para crear valores de retorno de contexto.
Descargar ahora

Contextual :: retorno Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Damian Conway
  • Sitio web del editor:
  • http://search.cpan.org/~dconway/

Contextual :: retorno Etiquetas


Contextual :: retorno Descripción

Contextual :: Retorno es un módulo PERL para crear valores de retorno de contexto-senstive. Contextual :: La devolución es un módulo PERL para crear valores de retorno de contexto-SENSTIVE.Synopsis Uso contextual :: Retorno; Usa la carpa; Sub foo {devuelta escalar {'' treinta y doce '} bool {1} ​​num {7 * 6} STR {' cuarenta y dos '} Lista {1,2,3} hashref {{name =>' foo ', value = > 99}} Arrayref {} GLOBREF {* STDOUT} CODEREF {CROAK "¡No use este resultado como código!"; }; } # y luego ... si (MIS $ FOO = FOO ()) {para mi conteo $ (1 .. $ foo) {imprimir "$ cuenta: $ foo es: n". "Array: @ {$ foo} n". "Hash: $ foo -> {nombre} => $ foo -> {value} n"; } Imprimir {$ foo} $ foo -> (); } Por lo general, cuando necesita crear una subrutina que devuelva diferentes valores en diferentes contextos (lista, escalar o void), escribe algo como: sub get_server_status {my ($ server_id) = @_; # Adquirir datos del servidor de alguna manera ... My% server_data = _ascierto_server_status ($ server_id); # Devuelva diferentes componentes de esos datos, # dependiendo del contexto de llamadas ... si (Wantarray ()) {devuelve @server_data {QW (nombre de tiempo de carga de tiempo arriba)}; } IF (definido Wantarray ()) {return $ server_data {cargar}; } Si (! definido Wantarray ()) {carpa 'Uso inútil de get_server_status () en contexto nulo'; regreso; } else {croak q {¡Mal contexto! No hay galletas!}; }} Que funciona bien, pero el código podría ser más legible. En su uso más simple, este módulo hace que ese código sea más legible al proporcionar tres subrutinas. Regreso; sub get_server_status {my ($ server_id) = @_; # Adquirir datos del servidor de alguna manera ... My% server_data = _ascierto_server_status ($ server_id); # Devuelva diferentes componentes de ese número de datos según el contexto de llamada ... si (LISTA) {devuelve @server_data {qw (nombre de tiempo de carga de tiempo arriba)}}} if (scalar) {return $ server_data {cargando}} { Imprimir "$ server_data {cargar} n"} else {croak q {¿Mal contexto! ¡No hay bizcocho!}}} Retorno contextual Tres subrutinas también se pueden usar de otra manera: como etiquetas en una serie de bloques de retorno contextual (conocidos colectivamente como secuencia de contexto). Cuando se devuelve una secuencia de contexto, selecciona automáticamente el bloque de retorno contextual apropiado para el contexto de llamadas. Por lo tanto, el ejemplo anterior podría ser escrito aún más limpiamente como: Use Contextual :: Retorno; sub get_server_status {my ($ server_id) = @_; # Adquirir datos del servidor de alguna manera ... My% server_data = _ascierto_server_status ($ server_id); # Devuelva diferentes componentes de ese número de datos dependiendo del contexto de llamada ... retorno (lista {devuelve @server_data {qw (nombre de tiempo de carga de tiempo arriba)}} scalar {return $ server_data {cargar}} void {imprimir "$ servidor_data {cargar} N "} Predeterminado {Croak Q {Contexto malo! ¡No hay galleta!}}); } La secuencia de contexto selecciona automáticamente el bloque adecuado para cada contexto de llamada. Requisitos: · Perl · Version.pm · Want.pm


Contextual :: retorno Software relacionado