#!/usr/local/bin/perl -w use strict; $/ = "\n0"; # read in one record at a time $^I = '.bak'; # modify input files in place, save originals with .bak my %convert = ( HEAL => 'Medical', HIST => 'Biography', EDUC => 'Educated', RESI => 'Resided', OCCU => 'Occupation', ); my $convert_re = join '|', keys %convert; $convert_re = qr/\b($convert_re)\b/; while (<>) { s/$convert_re/NOTE $convert{$1}:/g; if (/^.*SOUR/) { s/^1 NAME/1 TITL/m; s/^1 NAME/1 TEXT/m; s/^1 NAME/2 CONT/mg; } } continue { print; }