in reply to for loop ?
Of course, for is indeed a looping construct, but in this case the for loops each have only one iteration. The programmer is using the "for" to set the default variable $_ to the value of $os or $hardware in each case, then performing a regular expression match (/.../), implicitly on $_, against various values. Older Perls (5.8 and prior) do not have a switch statement (well, given/when statement), so various other approaches have been used in the past to emulate one. I would probably not use this particular approach myself, but it seems to work well enough.