$a = {b=>{c=>1}}; # set up ref
$b = $a->{b}; # ref the ref
$b .= (d=>1,e=>1); # where we want to assign multiple key/val at once
hashref üzerine anahtarı/değer çifti itmek ve hala muhafaza Nasıl $a
gibi görünmelidir
{ 'c' => 1, 'd' => 1, 'e' => 1 }
01: gibi görünmelidir
Not: yaptığını aynı olacaktır: o $a
bir kopyasını oluşturur ve başvuru kaybeder çünkü
$b->{d} = 1;
$b->{e} = 1;
$b = { %$b, d=>1, e=>1 };
arzu değil mi.
Evet Sormadan önce perldata'ya baktım ve özel bir şey bulamadım - ondan bir şeyler çözebildiğine sevindim. Açıkçası, ben şaşırdım '% {$ b} = (% {$ b}, d => 1, e => 1);' çalıştı (yine de başvurulan '$ a' için değişiklikler uygulandı) – vol7ron
hashref dilimi hakkında, '->' nin gerekli olmadığının farkına vardım. '$ _' bir hashref ile, ben bir şifreli hata mesajı üreten '_-> {qw (key1 key2)}' yi denedim: 'HASH referansı olarak tanımsız bir değer kullanamazsınız' Bu çalışır:' @ { $ _} {qw (key1 key2)} ' – Palec
@Palec Yaptığınız şey üzerinde herhangi bir yatak olmayabilir, ancak örneklerinizdeki' @ _' ve '@ $ _' iki farklı anlamları vardır – vol7ron