मैं इसतुलना और मान्य डेटा संरचनाओं
[
{ foo => { "<=" => 75 } },
{ bar => { "==" => 20 } },
{ baz => { ">=" => 5 } },
]
तरह की स्थिति को व्यक्त करने hashrefs के arrayref के खिलाफ यह एक
{ foo => 65, bar => 20, baz => 15 }
तरह hashrefs की जाँच करें और एक सच्चे मान अगर सभी शर्तों को पूरा कर रहे हैं करने के लिए है।
दो डेटा संरचनाओं में से कोई भी पूर्व निर्धारित नहीं है। एक डेटाबेस में स्ट्रिंग को पार्स करने से बनाया गया है, दूसरा उपयोगकर्ता इनपुट पार्सिंग से बनाया गया है।
उपरोक्त मामले में, मैं सच वापसी होगी, लेकिन अगर मैं
[
{ foo => { "<=" => 60 } },
{ bar => { "==" => 20 } },
{ baz => { ">=" => 5 } },
]
मैं, झूठी वापसी होगी क्योंकि पहली hashref में foo नहीं है < = 60.
के खिलाफ hashref जाँच सवाल यह है कि ऐसा करने के लिए सबसे अच्छी रणनीति क्या है?
मैं eval
- की सोच रहा हूँ और ==)
क्या मैं गलत पथ को पूरी तरह से नीचे जा रहा हूं? और यदि नहीं, तो सबसे अच्छा, eval या पूर्व-निर्मित कार्य क्या है?
मैंने पैराम्स में देखा है :: मान्य है लेकिन मुझे चिंता है कि यह बहुत अधिक ओवरहेड होगा, और मुझे वैसे भी कॉलबैक बनाना होगा।
एकल हैश रेफ की एक सरणी केवल उपयोगी होगी यदि आपके पास डुप्लिकेट कुंजी थी। जैसे '[{foo => ...}, {foo => ...}] 'मुझे संदेह है कि आपके पास डुप्लिकेट कुंजी नहीं है, जो यह अनावश्यक बनाता है, और आपको शायद एक हैश का उपयोग करना चाहिए, और सरणी को छोड़ना चाहिए। – TLP