On Thu, 11 Mar 2004, John W. Krahn wrote:

> Date: Thu, 11 Mar 2004 16:33:00 -0800
> From: John W. Krahn <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: Re: not getting the syntax
>
> Charlotte Hee wrote:
> >
> > Hello,
>
> Hello,
>
> > I'm looking at the perl cookbook example on how to create a record data
> > type:
> >
> >   $record = {
> >     NAME   => "Jason",
> >     EMPNO  => 132,
> >     TITLE  => "deputy peon",
> >     AGE    => 23,
> >     SALARY => 37_000,
> >     PALS   => [ "Norbert", "Rhys", "Phineas"],
> > };
> >
> > # store record
> > $byname{ $record->{NAME} } = $record;
> >
> > Is it possible to add another key:value-pair to $record  *after*  its
> > already been saved in %byname? For example, if I want to add
> > 'phone => 999-9999' to $record for Jason. How do I do that?
> >
> > I tried the following but it doesn't work and gives an error.
> >
> >  $byname { $record->{"Jason"}->PHONE } = '999-9999'; # error undefined val
> >
> > I keep looking at the syntax but it's not sinking in.
>
>
> $record is a reference to a hash so just add it directly to $record:
>
> $record->{ PHONE } = '999-9999';
>
>
> Or to access it via the %byname hash:
>
> $byname{ Jason }{ PHONE } = '999-9999';
>
>
>
> John
> --
> use Perl;
> program
> fulfillment
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>
>
>


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 ) {

    $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...".

 $byname{ Owen }{ PHONE } = '999-9999';


thanks, Chee

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to