in reply to Two keys with the same name in a hash.

Hi sashac88,

You are possibly messing with your $fname when you do ($fname,$lname,$age,$dep)= unpack ($pack_rules,$DATABASE{$fname}); and writing back to a different key. Why do you store they key with the data stored under they key ? Do you original derive the key in this way from the data ?

When you say "The problem is that when I look for a key existence in a hash-It gives me 2 keys" you are not making much Perl sense. To check for the existence of a key one usually1 does exists($hash{$key}) This can only return true/false, it returns no keys, not one and certainly not two :)

what do you see if you put in a print join ", " keys %DATABASE; ? Bet you don't see duplicate keys there so what are you doing to make you think you have duplicate keys ? An example of the code that you use to "look for key existence" would help a lot.

Cheers,
R.

1. I say usually because although I know no other way to check key existence I am not certain there is no other cunning trick known to the brethren

Pereant, qui ante nos nostra dixerunt!

Replies are listed 'Best First'.
Re^2: Two keys with the same name in a hash.
by sashac88 (Beadle) on Feb 09, 2005 at 11:04 UTC
    $var=join "," ,keys %DATABASE;
    print "$var\n";
    that gave me:
    Alexander,Dima,Ofir,Udi,Moti,Dima
      I've found the problem.
      thanks for the help.
      Since I read the variables from Entry widgets
      It assigns different key in that its' like the previous +
      empty space.