Estoy empezando a usar Moose.¿Cómo se crean subtipos en Moose?
Estoy creando un objeto de notificación simple y me gustaría comprobar que las entradas sean del tipo 'Correo electrónico'. (Ignore por ahora el simple emparejamiento de expresiones regulares).
De la documentación que creo que debe ser similar al siguiente código:
# --- contents of message.pl --- #
package Message;
use Moose;
subtype 'Email' => as 'Str' => where { /.*@.*/ } ;
has 'subject' => (isa => 'Str', is => 'rw',);
has 'to' => (isa => 'Email', is => 'rw',);
no Moose; 1;
#############################
package main;
my $msg = Message->new(
subject => 'Hello, World!',
to => '[email protected]'
);
print $msg->{to} . "\n";
pero consigo los siguientes errores:
String found where operator expected at message.pl line 5, near "subtype 'Email'" (Do you need to predeclare subtype?) String found where operator expected at message.pl line 5, near "as 'Str'" (Do you need to predeclare as?) syntax error at message.pl line 5, near "subtype 'Email'" BEGIN not safe after errors--compilation aborted at message.pl line 10.
Alguien sabe cómo crear un correo electrónico subtipo costumbre en Moose?
Moose-version: 0,72 perl- versión: 5.10.0, plataforma: Linux-Ubuntu 8.10
Email :: válidos ++ # expresiones regulares para la validación de correo es el mal – brunov
@bruno v - & Email :: Valid :: rfc822 usa una expresión regular para validación. – converter42