foreach my $sequence (@bigram) { #my $count; is this a bug? my @word = split ' ', $sequence; my $prev = shift @word; foreach $word (@word) { $count{"${prev}_${word}"}++; $prev = $word; } }