in reply to Search and Replace.

It may help to combine the non-anchored regexes with one alternation:
s/\:000[A,P]M|99991231|Jan 1 1900 12:00:00//g;
If, before the while loop, you computed
my @input_field_indexes = map($_-1, @PROC_FIELDS);
then your for loop could be written
for my $field (@INPUT_FIELDS[ @input_field_indexes ]) { $field = '' if $field =~ /SUN/; }
And you'd eliminated a lot of repetitive calculations, since @PROC_FIELDS doesn't change inside the while.

Caution: Contents may have been coded under pressure.