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>