in reply to Re^2: Retunining hash values from subroutines
in thread Retunining hash values from subroutines

This line: %UID_PATH = ("$USER" => "$UID[5]")
creates a hash containing the values "$USER" => "$UID5".

Where as this line:
$UID_PATH{$USER} = "$UID[5]"; adds a value to the already exsiting hash.
So, if you want to iterate through a file and perform some logic then add the result to an existing hash you use the second line. As long as the hash key is unique it will simple add to the hash leaving you with the end result of a hash with multiple values.

Here is a really simple example.

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; # Declare your hash my %hash; # Add the values below to the hash $hash{1} = "a"; $hash{2} = "b"; $hash{3} = "c"; print "Hash after adding values\n"; print Dumper \%hash; # Reinitialise hash - removing all previously added values %hash = ('1' => 'a'); print "Hash when reinitialised\n"; print Dumper \%hash;