मुझे कोई समस्या है जहां संख्याओं के जोड़े संख्याओं के अन्य जोड़े को मानचित्र करते हैं। उदाहरण के लिए, (1,2) -> (12, 9 7)। कुछ जोड़े कई अन्य जोड़े को मैप कर सकते हैं, इसलिए मुझे वास्तव में जो कुछ चाहिए वह सूचियों की सूची में एक जोड़ी को मैप करने की क्षमता है, जैसे (1,2) -> ((12, 9 7), (4,1))। दिन के अंत में मैं अलग-अलग मूल्यों (यानी, सूचियों की प्रत्येक सूची) को अलग से संसाधित करना चाहता हूं।पर्ल हैश जब दोनों कुंजी और मान सरणी संदर्भ हैं
अजगर में, मैं बस कह कर ऐसा कर सकता है:
key = (x, y)
val = [ a, b ]
if (x,y) not in my_dict:
my_dict[ (x,y) ] = []
my_dict[ (x,y) ].append([a,b])
हालांकि, पर्ल में, मैं कुंजी और मूल्यों के लिए refs उपयोग करना होगा। तो मैं निश्चित रूप से कह सकता हूं:
$keyref = [ x1, y1 ]
$valref = [ a, b ]
%my_hash = { $keyref => $valref }
लेकिन क्या होता है जब एक और जोड़ी (x2, y2) साथ आती है? यहां तक कि यदि x2 == x1 और y2 == y1, $ keyref = [x2, y2] उत्पन्न किए गए पिछले कीफ से अलग होंगे, इसलिए मुझे लुकअप करने का कोई तरीका नहीं दिख रहा है। बेशक, मैं प्रत्येक dereferenced हैश कुंजी के साथ (x2, y2) की तुलना कर सकता हूं, लेकिन आखिरकार, भगवान ने हमें ऐसा करने की आवश्यकता से बचने के लिए हैश टेबल दिया है।
क्या कोई पर्ल समाधान है?
धन्यवाद,
-W।
आप एक कुंजी के रूप में संदर्भ का उपयोग नहीं कर सकते हैं। (कम से कम नहीं * बिना * बंधे * हैश का उपयोग किए बिना –