पर्ल शब्द मुझे भ्रमित करते हैं और यह मेरी मूल भाषा नहीं है, इसलिए मेरे साथ भालू। मैं सही शर्तों का उपयोग करने की कोशिश करूंगा, लेकिन मैं सुनिश्चित करने के लिए बस एक उदाहरण दूंगा।पर्ल मुझे एक सरणी में हैश संदर्भ के सदस्य को अस्वीकार करने की अनुमति क्यों नहीं देता है?
तो मेरे पास परिवर्तनीय $ foo में हैश संदर्भ है। आइए कहें कि $ foo -> {'bar'} -> {'baz'} एक सरणी संदर्भ है। यही है कि मैं $ foo -> {'bar'} -> {'baz'} -> [0] को स्केलर में निर्दिष्ट करके सरणी का पहला सदस्य प्राप्त कर सकता हूं।
जब मैं इस कार्य करें:
foreach (@$foo->{'bar'}->{'baz'})
{
#some code that deals with $_
}
मैं त्रुटि "script.pl लाइन पर कोई सारणी संदर्भ 41"
लेकिन जब मैं यह कर यह काम करता है:
$myarr = $foo->{'bar'}->{'baz'};
foreach (@$myarr)
{
#some code that deals with $_
}
क्या ऐसा कुछ है जिसे मैं समझ नहीं रहा हूं? क्या कोई तरीका है कि मैं काम करने वाला पहला उदाहरण प्राप्त कर सकता हूं? मैंने अभिव्यक्ति को बाहरी पर @ के साथ कोष्ठक में लपेटने की कोशिश की, लेकिन यह काम नहीं किया। मदद के लिए समय से पहले धन्यवाद।
पार्सर को समझने के लिए तुम क्या मतलब है, और वाक्य रचना आप पहली बार जाने चीजों को कोशिश आप भिन्नता @ $ foo है, जो आप कर सकते हैं नहीं आपके मामले में करना चाहते हैं। यह सब कुछ है कि विभिन्न टोकन उनके आसपास की चीजों से कैसे बंधे हैं। हमारे पास _Intermediate Perl_ में एक लंबा स्पष्टीकरण है। :) –