in reply to Re^3: howto accomodate multiple values
in thread howto accomodate multiple values

Hey Holli I have solved the problem myself ;) I am soooo
happy. Thanks God I have done it and that also myself.
Anyway thanks for your help and patience to hear me.
I am really very very happy ;0)
Actually in my second for loop I was using the name $role
but in the code below I was using $key instead of $role
That was the actual mistake. Very simple but blown my mond
because I was new to Data Structures in Perl.
Now I have gone through all (hashofhash,
arrayhash,hasharray and arrayofarray)
Again I thank you for your patience and help.

Replies are listed 'Best First'.
Re: I have solved the problem
by holli (Abbot) on Dec 28, 2008 at 17:52 UTC
    was using the name $role but in the code below I was using $key instead of $role
    If that is all you changed, then you've still got some serious code smells and at least one serious potential bug. See my node above.


    holli, /regexed monk/
      I changed this code
      for my $href ( @AoH ) { for my $role ( sort keys %$href ) { my $key; if ( ! exists $sequences{$key} ) { warn "KEY $key in File1 not found in File2\n"; next; } if ( length( $sequences{$key} ) < $href->{$role} ) { warn "KEY $key: File2 string length too short for File1 positi +on value\n"; next; } my $index = rindex( $sequences{$key}, "TTT", $href->{$role} ); if ( $index < 0 ) { warn sprintf( "KEY %s: No TTT in File2 string prior to positio +n %d\n", $key, $href->{$role} ); next; } $index += 3 while ( ($index + 3) < $href->{$role} ); print "$key $href->{$role} " . substr($sequences{$key}, $index, 3) + . "\n"; }
      with this code
      for my $href ( @AoH ) { for my $key ( sort keys %$href ){ if ( ! exists $sequences{$key} ) { warn "KEY $key in File1 not found in File2\n"; next; } if ( length( $sequences{$key} ) < $href->{$key} ) { warn "KEY $key: File2 string length too short for File1 positi +on value\n"; next; } my $index = rindex( $sequences{$key}, "TTT", $href->{$key} ); if ( $index < 0 ) { warn sprintf( "KEY %s: No TTT in File2 string prior to positio +n %d\n", $key, $href->{$key} ); next; } $index += 3 while ( ($index + 3) < $href->{$key} ); print "$key $href->{$key} " . substr($sequences{$key}, $index, 3) +. "\n"; }
      I am getting exact outputs now ;)