जब भी मैं अपनी चाबियों से हैश पर लूप करता हूं, और फिर प्रत्येक मान को प्रिंट करता हूं, तो मुझे "concatenation (।) या स्ट्रिंग ..." चेतावनी में अनियमित मूल्य का उपयोग मिलता है। भले ही हैश स्पष्ट रूप से सामने आया है। जो आउटपुट मैं चाहता हूं वह मुद्रित है, लेकिन मैं अभी भी जानना चाहता हूं कि इसका परिणाम चेतावनी में क्यों होता है, खासतौर पर एक मूल्य तक पहुंचने के रूप में (लूप के बाहर) बिना चेतावनियों के काम करता है।पर्ल - अपनी चाबियों से हैश पर लूपिंग क्यों करता है और फिर प्रत्येक मान परिणाम को एक अनियमित चेतावनी में प्रिंट करता है?
#!/usr/bin/perl
use warnings;
use strict;
my %fruit =();
%fruit = ('Apple' => 'Green', 'Strawberry' => 'Red', 'Mango' => 'Yellow');
#works
print "An apple is $fruit{Apple} \n";
#gives warnings
foreach my $key (%fruit)
{
print "The color of $key is $fruit{$key} \n";
}
#also gives warnings
foreach my $key (%fruit)
{
my $value = $fruit{$key};
print "$value \n";
}
उपरोक्त कोड पर विचार करें। मुझे लगता है कि पर्ल पहले प्रिंट और दूसरे प्रिंट के बीच एक अंतर देखता है। पर क्यों? लूप के बाहर हैश के मूल्य को पुनर्प्राप्त करने और लूप के अंदर के मान को पुनर्प्राप्त करने के बीच कोई अंतर क्यों है?
धन्यवाद!
धन्यवाद! यह वास्तव में चाल है। महसूस नहीं किया :-)। – Gx1sptDTDa