yılında> {c} Böyle dinamik iç içe karma-ref ettik:
my $hash = { 'a' => { 'b' => { 'c' => 'value' } } };
Ben ayarlamak istediğiniz Kullanıcının "abc bir şey" girmesine izin vererek c'nin 'bir şey' değerini.
my $keys = 'a.b.c';
my $v='something';
my $h = $hash;
foreach my $k(split /\./, $keys) {
$h = $h->{$k};
}
print $h; # "value"
Ama nasıl
print Dumper $hash;
değişikliği yansıtır böylece $v
için anahtar c
değerini ayarlarsınız:
Şimdi alma değeri böyle yapılabilir ? $h
, foreach döngüsünün sonunda bir ref değil, bu nedenle değişiklik, $hash
'daki değişikliği yansıtmıyor. Kafamdaki düğümleri nasıl çözeceğime dair ipuçları var mı? Böyle
standart 'Veriler :: Dumper' en' Dumper' yerine CPAN 'Veriler :: Dump' modülünün' dd' işlevini kullanmayı deneyin. CPAN modülü daha kolay okumayı sağlar. – tchrist