Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

¿Cómo hacer un return $!?

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto
Mensaje Mie Dic 05, 2007 2:44 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 486
Ubicación: Frente al monitor
¿Cómo hacer un return $!? Responder citando

Cuando usas open perl retorna el error (si hay uno) con $! (o con $^E).

Yo quiero hacer algo similar:

Perl:
package MyModulo;
use strict;

sub funcion {
    my ( $a, $b ) = @_;
    if ( $a ne "algo" ) {
        return ERROR ? #no se que poner aquí
    }
    else { ... }
}

1;


y el cliente:
Perl:
use MyModulo;
my $algo = MyModulo->funcion(1, "a") or die "$!\n";


perlvar no me ha dicho mucho... al parecer $! y $^E sólo lo usa el interprete (Carp usa warn o die ).

Cualquier respuesta es útil.
¡Gracias!
Mensaje Mie Dic 05, 2007 7:16 pm
creating021
Vive para Perl en Español
Vive para Perl en Español
Registrado: 23 Feb 2006
Mensajes: 486
Ubicación: Frente al monitor
Responder citando

Bueno, buscar un poco más no me ha hecho daño Razz
Según este post (en inglés) no se puede hacer lo que yo quiero.
Mensaje Jue Dic 06, 2007 7:21 am
Norther
Perlero Frecuente
Perlero Frecuente
Registrado: 24 Jul 2007
Mensajes: 117
Ubicación: Asturias
Responder citando

Tus dudas dan gusto por que sueles ser el primero en contestártelas Very Happy
Mensaje Jue Dic 06, 2007 8:59 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4130
Ubicación: Valladolid, España
Responder citando

Puedes hacer que la función siga devolviendo un valor falso, para disparar al die(), pero en lugar de usar $!, usar tu propia variable de error global que habrás definido dentro de tu método. Por ejemplo, $MyModulo::ERROR.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group