Hash-Verarbeitung
Inge
- perl
Hi,
zu einem Hash kann ich Werte hinzufügen durch
$Daten{Name} = "Meyer";
$Daten{Vorname} = "Oliver";
....
$Daten{Ort} = "Köln";
Gibt es eine kürzere Variante, um eine ganze Reihe von Elementen hinzuzufügen?
Hi!
Gibt es eine kürzere Variante, um eine ganze Reihe von Elementen hinzuzufügen?
Ja, in SelfHTML steht auch was zu Perl-Hashes.
Schöner Gruß,
rob
Gibt es eine kürzere Variante, um eine ganze Reihe von Elementen hinzuzufügen?
Ja, in SelfHTML steht auch was zu Perl-Hashes.
Das habe ich gelesen, und daraus ergab sich die Frage!
Hi,
Gibt es eine kürzere Variante, um eine ganze Reihe von Elementen hinzuzufügen?
Ja, in SelfHTML steht auch was zu Perl-Hashes.Das habe ich gelesen, und daraus ergab sich die Frage!
Dann solltest du es vielleicht nochmal aufmerksam gleich das erste Beispiel durchlesen.
Da steht:
my %bessereDaten = (Name => "Jana", Alter => 23, Ort => "Berlin");
In dieser Zeile wird ein Hash initialisiert.
mfG,
steckl
Hallo,
nicht ich sollte besser durchlesen sondern Du meine Fragestellung.
Es war nicht die Frage der Initialisierung sondern der Erweiterung um mehrere Elemente!
nicht ich sollte besser durchlesen sondern Du meine Fragestellung.
Es war nicht die Frage der Initialisierung sondern der Erweiterung um mehrere Elemente!
Ups, tut mir leid.
mfG,
steckl
Hallo.
Gibt es eine kürzere Variante, um eine ganze Reihe von Elementen hinzuzufügen?
Du kannst den Hash überschreiben und ihm sowohl die alten, als auch die neuen Werte zuweisen:
# Initialisierung
my %hash = ( a => 1,
b => 2,
);
# Hinzufügen neuer Werte
%hash = ( %hash,
c => 3,
d => 4,
);
Üblich ist das m. E. allerdings nicht, eher merkwürdig.
Schöne Grüße.
Gibt es eine kürzere Variante, um eine ganze Reihe von Elementen hinzuzufügen?
Hash-Slices hielte ich hier für den elegantesten Weg:
my @keys = qw(foo bar baz);
my @values = qw(boo bum bla);
my %hash;
@hash{@keys} = @values;
Im strict-Pragma wird eine Warnung geworfen, wenn die Anzahl der Elemente in @keys und @values nicht übereinstimmt, da das Ergebnis des Slices unvorhersehbar ist.
Siechfred