我的班级出现以下错误:“无法修改file.do第26行的非左值子程序调用。”我的file.do看起来像这样:
line 2: use BookController;
line 3: my $bookdb = BookController->new();
...
line 26: $bookdb->dbh = 0;
我的BookController.pm看起来像这样:
#!/usr/bin/perl
package BookController;
use strict;
sub new
{
my $this = shift;
my $class = ref($this) || $this;
my $self = {};
$self->{DBH} = undef;
bless $self, $class;
return ($self);
}
sub dbh
{
my $self = shift;
$self->{DBH} = shift if (@_);
return $self->{DBH};
}
1;
有什么建议吗?
答案 0 :(得分:11)
您正在尝试设置sub
的返回值,因此错误。从实际方法来看,我认为你的意思是:
$bookdb->dbh(0);