On Oct 28, Richard Heintze said: >I have an array stored in an object and I trying to >compute the length of the array. This seemed to work >initially:
The LENGTH of an array is @array or @{ $ref_to_array }. The LAST INDEX of an array is $#array or $#{ $ref_to_array }. >my $nColumns = [EMAIL PROTECTED]>{component_titles}}}+1; You want my $nColumns = $#{ $me->{component_titles} }+1, or even better, just my $nColumns = @{ $me->{component_titles} }. >I don't really do anything to create to create this >array -- I just start storing elements like this: > > $me->{component_titles}[0] = "xyz"; > >Is there a better way to populate this array? Perhaps >with a declaration or something? That's ok. You can start by saying $me->{component_titles} = []; but that's not necessary. If you treat an undefined value as an array reference, it becomes an array reference. This process is called autovivification (automatically coming to life). >my $a = []; >$me->{a} = \$a; >$a->[0] = 1; >$a->[1] = 23; > >print $me->{a}->[0]; This is because $a is a reference to an array ALREADY. Storing \$a in $me->{a} makes $me->{a} a reference to a reference to an array. Just store $a, not \$a. -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course. [ I'm looking for programming work. If you like my work, let me know. ] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]