0
所以我在perl有一點小菜,但實質上這個代碼是我的模型的一部分(插入到sql數據庫中)。不能使用一個未定義的值作爲HASH參考 - Perl Mojolicious
運行此代碼時出現的錯誤是'不能使用未定義的值作爲HASH引用'。
我認爲明確的解決方案是定義一個包含名爲host_id的密鑰的散列。
我將如何去解決或修復我的代碼。
####delete subfunctions
######
sub deletehostservices
{
my ($self, $host_service_id) = @_;
my $host_id = $self->pg->db->query('DELETE from hosts_services where hosts_services_id = ? returning host_id', $host_service_id)->hash->{host_id};
return $host_id;
}
'query'方法是否返回具有'hash'方法的東西?你需要諮詢你的文檔。也可能是因爲你的SQL不正確。你看到數據庫中的任何錯誤消息嗎? – simbabque
查詢方法在其他實例中工作正常,我相信這是聲明host_id分配作爲一個哈希的一部分,這是造成這裏的錯誤。 – dipl0
使用Data :: Printer首先轉儲查詢方法的返回值。如果這沒有幫助,請查看哈希方法的返回值。你得到的錯誤指的是你的箭鏈的最後一部分。該方法散列返回undef,並嘗試訪問像散列引用。 – simbabque