On Wed, 2006-29-03 at 23:45 -0800, John W. Krahn wrote:
> Michael Gale wrote:
> > Hello,
>
> Hello,
>
> > I have setup a hash like the following:
> >
> > my $test;
> >
> > $test->{$setup}->{'opt'} = "OK";
>
> Or:
>
> my $test = { $setup => { opt => 'OK' } };
Or:
my $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;
>
> That should be:
>
> $test->{ $setup }{ data } = [ @data ];
>
> Or:
>
> @{ $test->{ $setup }{ data } } = @data;
Be aware that these two statements do a top-level copy of @data:
$test{$setup}{data} = [ @data ];
@{ $test{$setup}{data} } = @data;
Whereas this one stores a reference to @data:
$test{$setup}{data} = [EMAIL PROTECTED];
The difference is that in the first two, if @data changes,
$test{$setup}{data} does not. In the second, it will. Consider what
effect you want in your program when you choose between them.
--
__END__
Just my 0.00000002 million dollars worth,
--- Shawn
"For the things we have to learn before we can do them,
we learn by doing them."
Aristotle
* Perl tutorials at http://perlmonks.org/?node=Tutorials
* A searchable perldoc is at http://perldoc.perl.org/
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>