You are here: Wissensbasis Web>UtilFaqInclude>HashMerges (2006-04-10)

Wie werden zwei Hashes zu einem vereint?

Zwei Hashes
my %hash1 = (1 .. 8);
my %hash2 = (4 .. 11);
koennen z.B. auf diese beide Arten zusammengefuehrt werden:

Linearisierung

my %hash3 = (%hash1, %hash2);

Hier wird ein neuer Hash %hash3 angelegt, wobei die Schluessel aus %hash2 die von %hash1 ueberdecken. Die Hashes werden linearisiert, aus
(%hash1, %hash2)
wird also
(key1_aus_hash1, value1_aus_hash1, ..., key1_aus_hash2, value1_aus_hash2, ...)
. Diese Liste wird dann %hash3 zugewiesen. Je zwei Elemente werden zu einem neuen Key/Value Paar.

Beachte, dass hierbei ein dritte Hash, %hash3, benutzt wird. Es ist durchaus moeglich, die linearisierte Liste %hash1 oder %hash2 zuzuweisen. Ausserdem kann diese Variante beliebig viele Hashes zusammenfuehren.

Hash Slice

@hash1{keys %hash2} = values %hash2;

Das ist ein HashSlice?. Der Hash %hash1 wird nicht mit einem einzigen Schluessel addressiert, sondern mit den Schluesseln aus %hash2. Das Ergebnis ist eine Liste von zuweisbaren Variablen, denen wir sogleich die Werte von %hash2 zuordnen.

Hier ueberdeckt %hash2 die Schluessel aus %hash1 (in einem hash sind die Schluessel eindeutig!). Wenn du die zwei Hashes vertauscht, dann geschieht die Ueberdeckung genau andersrum.

Ergänzungen, Kommentare

Kommentare werden am besten in folgender Form vorgenommen, damit sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---+++ Main.??? - 14 Jul 2003 - Betreff

UtilFaqSubForm edit

Titel Hashes: Wie werden zwei Hashes zu einem vereint?
Autor
Bereich FaqTypen
Topic revision: 2006-04-10, TinaMueller
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.