我正在開發一個程序,以將用戶同步到不同的LDAP服務器。我有兩種類型的用戶組:Master-Groups和Target-Groups(它們是在配置文件中預定義的,可以有多個主組和每個組定義的目標)。 目標組中缺少主組的用戶應添加到目標中,主組中缺少目標組的用戶應從目標中刪除。Perl:在對象列表中快速查找對象 - 查找合適的數據結構
這些組中的用戶本身就是對象。我的問題如下:
我循環訪問我的可用主控組,並且必須執行快速查找,以查看用戶是否已經成爲目標組的一部分。我很努力地選擇正確的數據結構來解決這個問題。我試圖使用散列,但很快意識到,散列密鑰stringyfied,所以無法用於存儲對象執行
if (exists($master_members->{$target_user_object}))
當使用的陣列,每次我必須檢查如果用戶對象存在,我必須通過整個陣列循環,這基本上殺死了性能。
如果特定對象存在於對象列表中,我該如何執行查找?
親切的問候, Yulivee
您是否有任何可以識別對象的字段?如果是的話,你可以在散列中使用這個字段作爲散列鍵。例如:$ master_members - > {$ target_user_object-> ID}。 –
爲什麼你用_mouse_標記這個? – simbabque