Thread Dereferenzierung klappt nicht
(14 answers)
Opened by bianca at 2022-02-06 09:40 2022-02-06T18:14:45 bianca Hab' gegen Linuxers kluges Posting keine Einwände, aber ich zeig' auch kurz nochmal, wie ich das meinte: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 #!/usr/bin/perl use warnings; use strict; use Data::Dumper; my $io = {links => {refer => {entry => 10}}}; my %tmp_io = %{$io}; $tmp_io{links}{refer} = 4; print Dumper($io->{links}{refer}); Also, $io ist eine Referenz auf einen anonymen Hash. Dieser enthält weitere anonyme Hashes. Dabei ist $io->{links}{refer} eine Referenz auf einen anonymen Hash, der u.a. den Schlüssel "entry" enthält. Jetzt macht man mit "%tmp_io eine flache Kopie von dem aus $io dereferenzierten Hash, und ändert darin "$tmp_io{links}{refer}" auf "4" (wie in Deinem Code oben). Das wird dann über "Data::Dumper" auch in "$io->{links}{refer}" angezeigt, so daß man die Änderung da sehen kann. Der Unterschied wird erkennbar, wenn Du die Zeile Code (perl): (dl
)
$tmp_io{links}{refer} = 4; zum Vergleich deaktivierst, bzw. auskommentierst ("#"). Last edited: 2022-02-06 21:22:25 +0100 (CET) |