----- Original Message ----- From: "Charles K. Clarkson" <[EMAIL PROTECTED]> To: "'Öznur Tastan'" <[EMAIL PROTECTED]>; "'Perl Lists'" <[EMAIL PROTECTED]> Sent: Tuesday, February 24, 2004 11:53 PM Subject: RE: how to push a double dimensional array
> Öznur Tastan <[EMAIL PROTECTED]> wrote: > : > : ----- Original Message ----- > : From: "Charles K. Clarkson" <[EMAIL PROTECTED]> > : > : > Unfortunately, I have no idea if I have helped or not. > : > : No you exactly helped me but now let me ask one more question. > : When using a hash of array of hashes or a hash of an array of arrays > : how can I insert an new element in if I know which group it > : belongs to? > : for example how can I insert a new alignment whose > : seq1 AAAK > : seq2 VVV- > : score 10 > : into group_name_1 > : without backtracking how many elements group_name_1 contains > : so something like "push"????? > > > push @{ $group{ group_name_1 } }, [ 'AAAK', ' VVV-', 10 ]; > > Or: > > push @{ $group{ group_name_1 } }, > { > seq1 => 'AAAK', > seq2 => ' VVV-', > score => 10 > }; > > $group{ group_name_1 } is an array reference. They are similar > to the pointers used in C. Though not exactly the same. > > Wrapping a reference with @{} dereferences the array reference > so that it can be treated as an array. For convenience you could > also use: > > my $group_ref = $group{ group_name_1 }; > push @$group_ref, [ 'AAAK', ' VVV-', 10 ]; > > Here, @$group_ref is a shortcut for @{ $group_ref }. Unfortunately, > you can't use @$group{ group_name_1 } in place of > @{ $group{ group_name_1 } }. > > You can determine the number of alignments in a group by > retrieving the scalar value of its dereferenced array reference: > > my $group_size = @{ $group{ group_name_1 } }; > > Or: > > foreach my $group ( keys %groups ) { > printf "%s contains %s alignments.\n", $group, scalar @{ $groups{ $group > } }; > } > > An array of all groups in either data structure is in > 'keys %groups'. > > HTH, IDT( it did helped:) thanks oznur > -- > Head Bottle Washer, > Clarkson Energy Homes, Inc. > Mobile Home Specialists > 254 968-8328 > > > -- > 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>