在我的用户首选项页面上,我有一个perl脚本:
my $prefs = USystems::UserPrefs->new($user->userid);
呼吁:
sub new {
my $self = shift;
my $class = ref($self) || $self;
my $userid = shift;
$self = bless {}, $class;
$self->{dbh} = USystems::DB->new;
if($userid) {
$self->userid($userid);
$self->__populate;
}
return $self;
}
sub __populate {
my $self = shift;
my $sth = $self->{dbh}->prepare("select prefid, value from user_preferences where userid=?");
$sth->execute($self->userid);
while(my $href = $sth->fetchrow_hashref()) {
$self->value($href->{PREFID}, $href->{VALUE}, $href->{OTHERS_POST});
}
$sth->finish();
}
假设从数据库中的表返回所有用户的当前首选项。
当我转出$prefs
时,我得到以下内容:
'USERID' => 1286,
'PREFS' => {
'1' => {
'VALUE' => 4,
'OTHERS_POST' => undef
}
},
问题是我的$ prefs在undef
返回“{1}}时应返回”1“。我希望问题与潜行OTHERS_POSTS
和new
有关,但我对Perl没有足够的经验来找到问题。
答案 0 :(得分:0)
你不是选择OTHERS_POST作为专栏,不是吗?它不能是未定义的任何东西。