The first optimisation would be to make the script work correctly :). As things stands, 'Horror' is assigned to $_, and thrown away at the end of the loop. 'Sci-Fi' and 'Comedy' are assigned to $oval and $eval respectively and printed out.
The second time around, $_ is assigned 'Action', $oval and $eval each cop an undef, and a mess gets printed out.
So the first thing you want to do is:
for my $oval( @categories ) {
my $eval = shift @categories;
printf ("%15s %15s\n", $oval, $eval );
}
You might want to consider using each, but that would be somewhat obfuscated. That is left as an exercise for the reader.
update: oops! I completely misread the code. That's a while, not a foreach you had. In which case it works fine. All I can say in my defense is that it's an unusual construct. Which may be a warning flag for maintainability.
grinder wanders off to bed
--g r i n d e r
just another bofh
|