Here is one shot, though I changed some of the constants:
#!perl -w
my %h1 = ("one" => 1, "two" => 2, "three" => 3);
my %h2 = ("four" => 4, "five" => 5, "six" => 6);
my %h3 = ();
mergehash( \%h1, \%h2, \%h3);
sub mergehash {
my ( $h1, $h2, $h3) = @_;
foreach my $MyKey1 ( keys %{$h1} ) {
$h3->{$MyKey1} = $h1->{$MyKey1};
}
foreach my $MyKey2 ( keys %{$h2} ) {
$h3->{$MyKey2} = $h2->{$MyKey2};
}
foreach my $MyKey (sort keys %{$h3}) {
printf "%-9s: %3d\n", $MyKey, $h3->{$MyKey};
}
} # end of mergehash
Output:
five : 5
four : 4
one : 1
six : 6
three : 3
two : 2
Wags ;)
-----Original Message-----
From: AMORE,JUAN (HP-Roseville,ex1) [mailto:[EMAIL PROTECTED]]
Sent: Saturday, November 03, 2001 10:09
To: Beginners@Perl. Org (E-mail)
Cc: 'Maxim Berlin'
Subject: merging two hashes together?
Hello Perl Gurus,
I'm trying to write a program that will merge two hashes together onto a
third hash called %h3. I need to
return a reference to %h3 to the main program and print each of the values
of the hash %h3 using the arrow notation.
Name of the actual function performing the merge mergehash. Pass %h1 and
%h2 to mergehash as references.
The function call in the main program will be something like the following
where $ref_h3 will be used to print the values in %h3.
$ref_h3 = &mergehash(_____, _____);
%h1 = ("one" => 1, "two" => 2, "three" => 3);
%h2 = ("four" => 4, "five" => 5, "six" => 6);
Many Thanks!!!:)
JA
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]