perl -MData::Dumper -Mstrict -e 'my $c1; my $c2 = {}; print Dumper $c1; print Dumper $c2;'
syntax error at ./hash.pl line 14, near "Mstrict -e "
Execution of ./hash.pl aborted due to compilation errors.
Das war ein Kommandozeilen-Befehl. In einem Script sähe das so aus:
use strict;
use Data::Dumper;
my $c1;
my $c2 = {};
print Dumper $c1;
print Dumper $c2;
und warum funktioniert
print "$c1{Begruessung}\n";
nicht?
Weil sich das auf den Hash %c1 bezieht, der zwar in diesem Fall indirekt angelegt wird, aber der keinen Key "Begruessung" hat.
damit ich das richtig verstehe... %c1; ist ein gewöhnlicher hash und $c1={}; ist eine referenz auf eine anonyme hash tabelle?
Ja.
was wäre dann für die folgende Struktur geeigneter?
[...]
Vermutlich die Hash-Referenz, weil da weniger kopiert werden muss.