Je commence actuellement avec Perl OOP en utilisant le paquet "Moose".Comment gérer les paramètres optionnels dans Moose?
Le compilateur se plaint qu'il "ne peut pas modifier l'appel de sous-routine non-lvalue à Parser.pm ligne 16."
Je ne comprends pas très bien pourquoi je ne peux pas simplement assigner un nouvel objet. Je suppose qu'il existe une meilleure façon de faire des paramètres optionnels avec 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
}
}
Je ne vois aucune connexion aux paramètres facultatifs. Pouvez-vous développer? – ysth