use strict; use warnings; my @plates = ( {GIVENNAME => 'Fred', SIRNAME => 'Fredson', AMOUNT => '$10.24'}, {GIVENNAME => 'Joe', SIRNAME => 'Joeson', AMOUNT => '$20.48'}, ); my $text = do {local $/; }; for my $plate (@plates) { my $copy = $text; $copy =~ s/$_/$plate->{$_}/g for keys %$plate; print "$copy\n\n"; } __DATA__ Dear GIVENNAME SIRNAME, thanks for your recent contribution if AMOUNT to PerlMonks.