[Dresden-pm] Hashes mischen

Steffen Schwigon schwigon at webit.de
Mit Sep 17 05:07:17 CDT 2003


Hi!

Ich will zwei Hashes mischen.

Hash2 soll in Hash1 übernommen werden und ggf. Werte ersetzen (also
affe => 'lustig' muß sich im Beispiel unten durchsetzen).

Fällt jemandem ein kürzeres, eleganteres Statement ein als
untenstehende Variante 1, z.B. was ähnliches wie die Variante 2,
aber ohne derartiges Klammermassaker?

--- schnipp ----------------------------------------------------
#! /usr/bin/perl

use strict;
use warnings;

my $hash1 = { 'affe'  => 'nett',
	      'loewe' => 'hungrig'
};

my $hash2 = { 'ziege' => 'bissig',
	      'pferd' => 'groß',
	      'affe'  => 'lustig'
};

print "vorher: ";
print %$hash1;

# Variante 1
map { $hash1->{$_} = $hash2->{$_} } keys %$hash2;

# Variante 2
#%$hash1 = (
#	   @{[%{$hash1}]},
#	   @{[%{$hash2}]}
#	  );

print "\nnachher: ";
print %$hash1;

print "\n";
--- schnapp ----------------------------------------------------

GreetinX
Steffen 
-- 
Steffen Schwigon <schwigon at webit.de>