in reply to Format Conversion Structure

Why do you believe treating lines as objects will help?

You have a seemingly arbitrary data translation to make. A hash would seem to solve that:

my %translator = ( '-XYZ.CO' => '(C)', # etc ); while (<IN>) { chomp; print OUT join( ' ', map { $_->[0], $_->[1], $translator{ $_->[3] }, $_->[2]; } [split ' ', $_]), $/; }

It is difficult to make a more concrete recommendation with seeing the variance in your data.

After Compline,
Zaxo