में मैं इस तरह गतिशील नेस्टेड हैश refs है:
my $hash = { 'a' => { 'b' => { 'c' => 'value' } } };
मैं सेट करना चाहते हैं उपयोगकर्ता को "एबीसी कुछ" इनपुट करने की इजाजत देकर 'कुछ' का मूल्य।
अब हो रही मूल्य इस तरह किया जा सकता है:
my $keys = 'a.b.c';
my $v='something';
my $h = $hash;
foreach my $k(split /\./, $keys) {
$h = $h->{$k};
}
print $h; # "value"
लेकिन यह कैसे मैं $v
की कुंजी c
का मान सेट हैं ताकि
print Dumper $hash;
परिवर्तन को प्रतिबिंबित करेगा ? $h
फ़ोरैच लूप के अंत में एक रेफरी नहीं है, इसलिए बदलना $hash
में परिवर्तन को प्रतिबिंबित नहीं करेगा। मेरे सिर में गाँठ को हल करने के लिए कोई संकेत है?
मानक 'डाटा :: Dumper' के' Dumper' की CPAN 'डाटा :: Dump' मॉड्यूल के' dd' समारोह उपयोग करने का प्रयास करने के बजाय। सीपीएएन मॉड्यूल बहुत आसान पढ़ने के लिए बनाता है। – tchrist