所以我有一個帶有變量(x,y)的類AClass和一個函數,它應該將兩個對象作爲同一類的參數,計算它們的x和y,並且返回具有計算值的類的新實例。perl:從對象的函數中獲取一個值
package AClass;
sub new {
my $class = shift;
my $x = shift;
my $y = shift;
my $self = {
x => $x,
y => $y
};
return bless($self, $class);
}
sub getX {
my $self = shift;
return $self->{'x'};
}
sub getY {
my $self = shift;
return $self->{'y'};
}
sub addition {
my ($c1, $c2) = @_;
return new AClass(
$c1->getX() + $c1->getX(),
$c1->getY() + $c2->getY()
);
}
my $a1 = AClass->new(6, 4);
my $a2 = AClass->new(4, 3);
my $val = AClass::addition(\$v1, \$v2);
say $val.getX();
我收到錯誤「Can not call method」getX「on unblessed reference」。我想這個問題還有另外一個功能,當我試圖訪問不是實數的對象的值時,或者?
閱讀第一個答案[這裏](http://stackoverflow.com/questions/22665135/why-object -is-返回隨機值,在-perl的)。 –
請將你的'新的AClass(...)'寫成'AClass-> new(...)'。如果你習慣於這樣寫,你會在將來的某個時刻爲自己節省很多痛苦。 –