我有一個基於祝福hashref的Perl類(https://github.com/kylemhall/Koha/blob/master/Koha/Object.pm)如何停止或允許將perl對象用作hashref?
這是一個基於社區的項目,擁有許多不同技能的開發人員。
我看到的是一些開發者意外地將我們的對象用作hashrefs。實際數據不存儲在有福的hashref中,而是存儲在hashref中存儲的dbic對象中(在$ self - > {_ result}中)。當開發人員嘗試像$ object - > {id} perl這樣的東西不會抱怨時,它會像預期的那樣返回undef。
我想要做的是要麼 A)製作的腳本錯誤爆炸發生這種情況時 B)允許設置/存儲在$自我DBIC對象獲取值使用hashref語法 - > {_}結果
我試着使用:
use overload '%{}' => \&get_hashref;
,但是當我這樣做,get_hashref被稱爲隨時常規方法被調用!這是有道理的,因爲對象本身是一個hashref。我確信這與Perl內部的有福的hashrefs作爲對象有關。
我試圖完成甚至可能嗎?
謝謝!有了這個想法,我不僅能夠保護對象免受不當使用,而且能夠完成我希望做的hashref仿真! – Kyle
鏈接到那些有興趣的補丁:https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=15759 – Kyle
@ikegami - 很好!當你建議使用「基於標量或基於數組的對象」時,我認爲需要進行重大改寫。 –