This should do it... my %all_keys = ();
foreach my $key (keys %hash1) { $all_keys{$key} = 1; } foreach my $key (keys %hash2) { $all_keys{$key} = 1; } foreach my $page ( sort( keys(%all_keys) ) ) { my $diff = $hash1{$page} - $hash2{$page}; my $diff = abs($diff); # remove "-" sign print "$page $diff\n"; } It can be done a lot more compact than this, but I thought this would be a bit more understandable. Rob -----Original Message----- From: Pam Derks [mailto:[EMAIL PROTECTED]] Sent: Friday, January 31, 2003 3:21 PM To: [EMAIL PROTECTED] Subject: newbie stuck in a hash Hi all, I have 2 files that contain a filename and # of hits I've split the contents of these 2 files into %hash1 and %hash2 I want to find out the difference in the # of hits can someone shed some light on the approach I should take. thanks in advance, Pam I've gotten this far: sample data: FILE1 arts.html 95 arttherapy.html 102 award.html 277 bayart.html 1 best.html 1 FILE2 arts.html 101 arttherapy.html 103 award.html 282 bayart.html 2 best.html 2 splat.html 10 (note this is not in FILE1) DESIRED OUTPUT: arts.html 6 arttherapy.html 1 award.html 10 best.html 1 splat.html 10 #!/usr/bin/perl -w $dir = "/dept/unxmkt/bin/hits/news/by_month"; chomp(@ARGV); $file1 = shift(@ARGV); $file2 = shift(@ARGV); print("$file1 $file2\n"); open(FILE1, "$dir/$file1.total") or die ("nope: $!"); open(FILE2, "$dir/$file2.total") or die ("nope: $!"); while(<FILE1>){ my(%hash1, $key1, $value1); ($key1, $value1) = chomp && split; $hash1{$key1} = $value1; for (keys %hash1){ print("$hash1{$key1}\n"); } } print("------------------------------\n"); while(<FILE2>){ my(%hash2, $key2, $value2); ($key2, $value2) = chomp && split; $hash2{$key2} = $value2; for (keys %hash2){ print("$hash2{$key2}\n"); } } -- 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]