in reply to Re^2: variable as hash name
in thread variable as hash name
Here's your program modified to work with use strict:
#!/usr/bin/perl use strict; use warnings; my $input_data = << 'REPORT_OF_INPUT'; Bet01;;Bet05;;Bet06;;Bet12;; 230;238;101;103;138;146;112;116;; 230;238;101;103;146;146;108;112;; 224;238;0;0;146;146;110;118;; 238;238;0;0;146;146;112;114;; REPORT_OF_INPUT my @inputs = split "\n", $input_data; my $line = shift @inputs; $line =~ s/;;/;/g; my @loci_codes = split ";", $line; my %LOCI; foreach my $line ( @inputs ) { my @alelos = split ";", $line; foreach my $locus ( @loci_codes ) { my $allele1 = shift @alelos; my $allele2 = shift @alelos; $LOCI{$locus}{$allele1} += 1; $LOCI{$locus}{$allele2} += 1; } } foreach my $locus ( @loci_codes ) { foreach my $key ( keys ( %{$LOCI{$locus}} ) ) { print "$locus ", $key, " = ", $LOCI{$locus}{$key}, "\n"; } }
Is that so hard?
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
In Section
Seekers of Perl Wisdom