微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Perl错误:无法修改非左值子程序调用

我的班级出现以下错误:“无法在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;

有什么建议?

解决方法

您正在尝试设置sub的返回值,因此错误.从实际方法来看,我认为你的意思是:

$bookdb->dbh(0);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐