PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Perl] Pfeile: => oder ->



ThorstenHirsch
20-05-2012, 11:48
Servus!

Ich komme gerade durcheinander, was die beiden Pfeile betrifft. Den => kenne ich von Hash-Zuweisungen. Und -> von Objekten. Das passt vielleicht auch zu einem Beispiel aus dem Moose Cookbook:

package Point;
use Moose;

has 'x' => (isa => 'Int', is => 'rw', required => 1);
has 'y' => (isa => 'Int', is => 'rw', required => 1);

sub clear {
my $self = shift;
$self->x(0);
$self->y(0);
}
Aber so ganz klar ist es mir trotzdem nicht. Oben beim "has" versteh' ich bspw. überhaupt nicht den Sinn von => auf einen Hash (das in den Klammern mit den 3 Zuweisungen ist doch einer, oder?).
Und in Bezug auf den unteren Teil: ich hatte mal gelesen, dass Perls OO auf Hashs (bzw. Hashreferenzen) basiert. Wieso heißt es dann nicht $self=>x(0) in sub clear? Oder ist der -> syntactic sugar von Moose?

undefined
22-05-2012, 20:43
Weil es nach der Initialisierung sehr wahrscheinlich ein Objekt ist :o
http://perldoc.perl.org/perlobj.html#An-Object-is-Simply-a-Reference

ThorstenHirsch
25-05-2012, 00:11
Aaaaaah! Das macht bless() also! Danke!