嘗試在Perl中使用OOP。我的問題是我在課堂上設置了一個變量,但是當我嘗試並檢索它時,該值會丟失。我確定這個問題很明顯,但我需要一些額外的眼睛。Perl - 未保存對象值
構造:
sub new
{
my ($class, $name) = @_;
my $self = {
_name => $name,
_times => []
};
bless ($self, $class);
return $self;
}
存取/突變方法:
$js->addRun($duration, $curStartTime);
print "Times size: " . @{$js->times()} . "\n";
從addRun
相關的代碼()子程序::
sub addRun {
my ($self, $duration, $runDateTime) = @_;
if (!defined($duration) || !defined($runDateTime)) { return 0; }
push(@{$self->{_times}},$duration);
}
從主程序
sub times {
my ($self) = shift;
if (@_) { @{$self->{_times}} = shift }
print "times size: " . @{$self->{_times}} . "\n";
return @{$self->{_times}};
}
呼叫
當我運行這段代碼時,它進入addRun子程序並將值推送到_times變量。然後通過調用訪問器/增變器來打印值。但是accessor/mutator有自己的打印命令,所以我可以在返回之前檢查它的值。
訪問器打印正確的值,但是當我打印返回的內容時,它是未定義的。我的語法是在哪裏搞亂的?我只是一個白癡?
感謝
你試試用你的對象上的數據::自卸車,看看是否值確實得到保存? – Ether 2010-05-25 20:01:00
啓用'strict'編譯指示。 – daotoad 2010-05-25 20:05:44