You can try this.
 
$test->{$setup}->{'data'} = [$data[0], $data[1]];
 
As you said reference is not going to work, if your array value changes at run 
time. You can also access specific elements of the array individually, whenever 
required.
 
Baskaran

________________________________

From: Michael Gale [mailto:[EMAIL PROTECTED]
Sent: Thu 30/03/2006 13:31
Cc: beginners@perl.org
Subject: Re: store Array in hash ?



Hey,

I think I am supposed to use a reference here ? If so I can't because
the data array keeps over written and reused again and again.

I guess I will come up with a different solution.

Michael


Michael Gale wrote:
> Hello,
>
>     I have setup a hash like the following:
>
> my $test;
>
> $test->{$setup}->{'opt'} = "OK";
>
> It works fine, now I want to save an array to the hash:
>
> my @data;
>
> push(@data,"test");
>
> $test->{$setup}->{'data'} = @data;
>
> Now how do I use it in a for loop later in the script, I tried:
>
> for(my $c=0; $c < $test->{$setup}->{'data'}; $c++) {
>     print $test->{$setup}->{'data'}[$c];
> }
>
> But that just returns:
> Can't use string ("2") as an ARRAY ref while "strict refs" in use at
> ./imap-watch.pl line 380.
>
> Michael
>

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





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