Anonymous: Variablen - Unterschiede

Beitrag lesen

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.