Let's say you decide to explode the string of DNA into an array. By
explode I mean separating out each letter in the
string—sort of like blowing the string into bits. In other words, the letters
representing the bases of the DNA in the string are separated, and each letter
becomes its own scalar value in an array. Then you can look at the array elements
(each of which is a single character) one by one, making the count as you go along.
This is the inverse of the
join function in Section 5.3.2, which takes an array
of strings and makes a single scalar value out of them. (After exploding a string
into an array, you could then join the array back into an identical string using
join, if you so desire.)
I'm also adding to this version of the pseudocode the instructions to get the DNA from a file and manipulate that file data until it's a single string of DNA sequence. So first, you join the data from the array of lines of the original file data, clean it up by removing whitespace until only sequence is left, and then explode it back into an array. But, of course, the point is that the last array has exactly what is needed, the data in a convenient form to use in the counting loop. Instead of an array of lines, with newlines and possibly other unwanted characters, there's an exact array of the individual bases.
read in the DNA from a file join the lines of the file into a single string $DNA # make an array out of the bases of $DNA @DNA = explode $DNA # initialize ...