मुझे एक डेटा संरचना मिली है जो हैश है जिसमें हैश की एक सरणी है। मैं वहां पहुंचना चाहता हूं और पहले हैश को खींचना चाहता हूं जो एक मूल्य से मेल खाता है जिसे मैं ढूंढ रहा हूं। मैं इस की कोशिश की:पर्ल की शिफ्ट शिकायत क्यों करती है 'शिफ्ट करने के लिए तर्क 1 का प्रकार सरणी होना चाहिए (grep iterator नहीं)।'
my $result = shift grep {$_->{name} eq 'foo'} @{$hash_ref->{list}};
लेकिन वह मुझे इस त्रुटि देता है: Type of arg 1 to shift must be array (not grep iterator).
मैं गया है grep
के लिए perldoc फिर से पढ़ सकते हैं और मुझे लगता है कि मैं क्या कर रहा हूँ समझ में आता है। grep
एक सूची देता है, है ना? क्या यह गलत संदर्भ में है?
मैं अब के लिए एक अस्थायी चर का उपयोग करूंगा, लेकिन मैं यह जानना चाहता हूं कि यह क्यों काम नहीं करता है।
मुझे लगता है कि मैं अपने व्हाइटबोर्ड पर 'एक सूची एक सरणी नहीं है' लिखूंगा। धन्यवाद। – wes
अब उन एफएक्यू के लिए एक बेहतर जवाब है: http://www.effectiveperlprogramming.com/blog/39 –
@brian d foy - अक्सर पूछे जाने वाले प्रश्न कब अपडेट होते हैं? (यानी हम इसे पर्ल 5 संस्करण 10 की एक बिंदु रिलीज में देखेंगे, या यह संस्करण 12 में होगा?) – Quentin