Ich beginne derzeit mit Perl OOP mit dem "Moose" -Paket.Wie gehe ich mit optionalen Parametern in Moose um?
Der Compiler beschwert sich, dass es "Nicht-lvalue Unterroutinenaufruf bei Parser.pm Zeile 16 nicht ändern kann".
Ich verstehe nicht ganz, warum ich nicht einfach ein neues Objekt zuweisen kann. Ich denke, es gibt einen besseren oder mehr gültigen Weg, optionale Parameter mit Moose zu machen?
#!/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
}
}
Ich sehe keine Verbindung zu optionalen Parametern. Kannst du das weiter ausführen? – ysth