2011-01-20 22 views
9

में हैश की एक सरणी के माध्यम से लूपिंग मैं कुल पर्ल नौसिखिया हूं, इसलिए अगर यह वास्तव में बेवकूफ है तो मुझे माफ़ कर दो, लेकिन मैं इसे समझ नहीं सकता।पर्ल

my @array = (
    {username => 'user1', email => '[email protected]' }, 
    {username => 'user2', email => '[email protected]' }, 
    {username => 'user2', email => '[email protected]' } 
);

इस सरणी के माध्यम से लूप करने के लिए सबसे आसान तरीका क्या है: अगर मैं इस तरह एक सरणी है? मैंने सोचा था कि कुछ इस तरह काम करेगा:

print "$_{username} : $_{email}\n" foreach (@array);

लेकिन ऐसा नहीं है। मुझे लगता है मैं एक PHP मानसिकता जहां मैं बस की तरह कुछ कर सकता है के साथ भी अटक कर रहा हूँ: तो तुम -> उपयोग करने के लिए derefecence की जरूरत

foreach ($array as $user) { echo "$user['username'] : $user['email']\n"; }

उत्तर

28

@array हैश संदर्भ होता है,।

print "$_->{username} : $_->{email}\n" foreach (@array); 

भी देखें प्रलेखन, उदाहरण के perldoc perlreftut और perldoc perlref के लिए।

+0

हे भगवान, मुझे अब इतना मूर्ख लगता है। धन्यवाद! – Ricky

+2

को @array के लिए '$ "$$ _ {उपयोगकर्ता नाम}: $$ _ {ईमेल}" लिखा जा सकता है; ' –