मेरे पास पर्ल में हैश के बारे में जानने की कोशिश करने वाली एक साधारण स्क्रिप्ट है।पर्ल की प्रत्येक() दूसरी बार पूरे हैश के माध्यम से फिर से क्यों नहीं चलती?
#!/usr/bin/perl
my %set = (
-a => 'aaa',
-b => 'bbb',
-c => 'ccc',
-d => 'ddd',
-e => 'eee',
-f => 'fff',
-g => 'ggg'
);
print "Iterate up to ggg...\n";
while (my ($key, $val) = each %set) {
print "$key -> $val \n";
last if ($val eq 'ggg');
}
print "\n";
print "Iterate All...\n";
while (my ($key, $val) = each %set) {
print "$key -> $val \n";
}
print "\n";
मैं उत्पादन से हैरान हूं: -
Iterate upto ggg...
-a -> aaa
-c -> ccc
-g -> ggg
Iterate All...
-f -> fff
-e -> eee
-d -> ddd
-b -> bbb
मैं समझता हूँ कि कुंजी टुकड़ों में बांटा जाता है, ताकि पहले उत्पादन आंतरिक आदेश के आधार पर 'एन' तत्व हो सकता है। लेकिन मैं बाद में सरणी को लूप करने में सक्षम क्यों नहीं हूं? क्या गलत है ?
धन्यवाद,
धन्यवाद अपने कोड में कुंजी% सेट का उपयोग कर सकते हैं। बीटीडब्लू, क्या शुरुआत में 'प्रत्येक' को रीसेट करना संभव है? –
"% हैश =% हैश" काम करता प्रतीत होता है। – jrockway
(perlfaq4 शून्य संदर्भ में हैश पर "कुंजी" बुला पता चलता है। यह अनावश्यक नकल न करना चाहें।) – jrockway