On Jan 18, 2008 6:06 PM, Kevin Viel <[EMAIL PROTECTED]> wrote:
> This I cannot get my mind around...
>
> My data:
>
> SNP  Genotype
> 1       CC
> 1       CT
> 1       TT
> 1       NN
>
>
> It seems to me that I need a hash of hashes.
>
> Inner hash:
>
> $inner{ $Genotype }++ ;
>
> Since the value of the out hash ( $outer{ $SNP } ) has to be a scalar, this
> scalar has to be a reference to the inner hash, correct?  If so, how do I
> declare them?
>
> my %outer ;
snip

In general you only declare the outer hash.  Perl uses some magic
called autovivication to create the inner hash references.

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my %data; #pick a better name
while (<DATA>) {
    my ($snp, $genotype) = split;
    $data{$snp}{$genotype}++
}
print Dumper(\%data);

__DATA__
1       CC
1       CT
1       TT
1       NN
2       CT
2       CT
2       CT

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to