Had it been written, for example, with a foreach loop, and terminated after each successful full pass through the elements of @strings, a user would then be obligated to re-run the script (and, hence, re-read the text file) to attempt another pattern.
Yes, this is almost a tautology: if it terminates after processing @strings once, then it will terminate and you would have to run the whole script once again. The point is that it caches file info into @strings and processes the latter each time for each supplied pattern.
Regarding the "Llama book", it is actually "Learning Perl" by Randal L. Schwartz, et al, and published by O'Reilly Media, Inc. I have been trying to learn Perl, using this book for just 2 months, now, and I don't profess to know all of the information, therein. Do you, by chance, have a different text you would recommend for the purpose of learning Perl basics? If so, I would be willing to try it also.
I know what the "Llama book" is, but I mean: I don't have it handy and I only had it a few times in my all life in my hands. I don't have any good recommendation because basically most of what I know stems from a week's reading of the first few chapters of a very old Llama (Perl 4 times I suspect) and then from clpmisc.