Charlotte Hee wrote: > > For a single record I can see how that works but let's say I have > 4 or 5 employees and I have the employee information for each one > (assumed). Now I want to build a record for each employee in a loop like > this: > > @names = ('Jason','Aria','Samir','Owen'); > > foreach $na ( @names ) {
So all the records differ only in name, and all other parameters stay the same? > $record = { > NAME => $na, > EMPNO => $emp_no, > TITLE => $title, > AGE => $age, > SALARY => $salary, > PALS => [ $friend_list ], > }; > > # store record > $byname{ $record->{NAME} } = $record; > > } > > Now I want to add something later, after the record for the employee has > been created. For example, I want to add the phone for Owen. > When I try the following I get "can't use undefined value...". Since you don't seem to be showing us the code you are actually using, we are somewhat at a disadvantage. ONe thing you should not, though. Since the nested hashes should be storedonly by reference, you should use the derefereing operator -> to get at least the fianl element. > $byname{ Owen }{ PHONE } = '999-9999'; Should be: $byname{ Owen }->{ PHONE } = '999-9999'; are you using strict? The code above should cause an error, not just an uninitialized variable warning. You really should put: use strict; use warnings; at the top of the script, and clean up the errors returned before you try to take on multidimensional structure problems. Houses built on sand cannot be expected to stand. Joseph -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>