Thread while frage
(6 answers)
Opened by mark05 at 2011-09-01 09:35 2011-09-01T08:02:00 topeg das stimmt nicht. Code: (dl
)
1 $ perl -wE' da wird gar kein eintrag angelegt. autovivification wird immer wieder missverstanden. wenn ich $foo->{blubb}->[123] abfrage, wird der key blubb in $foo angelegt. das aber auch unabhängig davon, ob ich exists oder defined verwende. die autovivification entsteht dadurch, dass ich mit $foo->{blubb}->[123] in $foo->{blubb} ein array erwarte und es gleichzeitig dereferenziere, als sei es schon da. und in dem moment legt perl es für mich an. Code (perl): (dl
)
1 2 3 4 5 6 7 8 my $foo = { bar => [1,2,3] }; exists $foo->{bar}->[42]; # legt gar nix an defined $foo->{bar}->[42]; # legt gar nix an # genauso mit einem hash of hashes $foo = { bar => { a => "b" } }; exists $foo->{bar}->{boo}; # legt gar nix an defined $foo->{bar}->{boo}; # legt gar nix an Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |