Actualmente estoy empezando con Perl OOP usando el paquete "Moose".¿Cómo manejo los parámetros opcionales en Moose?
El compilador se queja de que "No se puede modificar la llamada de subrutina que no es lvalue en la línea 16 de Parser.pm".
No entiendo por qué no puedo asignar un nuevo objeto. ¿Supongo que hay una forma mejor o más válida de hacer parámetros opcionales con Moose?
#!/usr/bin/perl -w
package Parser;
use Moose;
require URLSpan;
require WWW::Mechanize;
has 'urlspan' => (is => 'rw', isa => 'URLSpan', required => 1);
has 'mech' => (is => 'rw', isa => 'WWW::Mechanize');
sub BUILD {
my $self = shift;
if(!$self->mech) {
warn("no Mech set for " . $self->urlspan->name);
$self->mech = WWW::Mechanize->new(agent => 'Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.4',
stack_depth => 1
); #line 16
}
}
No veo ninguna conexión a los parámetros opcionales. ¿Se puede ampliar al respecto? – ysth