使用此代碼後,我被卡在我認爲是一個簡單的錯誤,但我需要外部的眼睛,看看有什麼不對。陣列中的簡單變量數
我用解壓函數將一個數組分成下列幾部分。
@extract =
------MMMMMMMMMMMMMMMMMMMMMMMMMM-M-MMMMMMMM
------SSSSSSSSSSSSSSSSSSSSSSSSSS-S-SSSSSDTA
------TIIIIIIIIIIIIITIIIVVIIIIII-I-IIIIITTT
顯然,在解包入數組後,當我嘗試進入while循環時,@extract顯示完全爲空。任何想法爲什麼會發生這種情況? print @extract; #< -----------打印輸入
my $sum = 0;
my %counter =();
while (my $column = @extract) {
print @extract; #<------- This extract is completely empty. Should be input
for (my $aa = (split ('', $column))){
$counter{$aa}++;
delete $counter{'-'}; # Don't count -
}
# Sort keys by count descending
my @keys = (sort {$counter{$b} <=> $counter{$a}} keys %counter) [0]; #gives highest letter
for my $key (@keys) {
$sum += $counter{$key};
print OUTPUT "$key $counter{$key} ";
開始寫代碼,獲取了一條線的最高數;然後在你的線上繞一圈;你似乎混淆了這裏的兩項任務。 – ysth
你是對的,必須添加另一個循環元素來計算個體。謝謝 – Gyler