Stylistic issues aside (you don't need to name $_, you can just do
if(m/C B A R/), but I digress), you could probably speed up your code if your test cases are mutually exclusive. That is to say that if 'CBAR' and 'QUAD' will never appear on the same line, you can use
elsif instead of
if. The
elsif will short circuit, thereby eliminating a ton of pattern matches. For more speed, put the more common cases towards the top of the chain of
if..elsif..elseif so that it short circuits as early as possible.
HTH,
thor