# set this up once... my %cols = ( UN => 0, RN => 1, LOC => 2, ... ); my $cols = do { my $tmp = join '|', keys %cols; qr/$tmp/ }; # for each prompt to fill in: $prompt =~ s/-($cols)-/$user_info[ $cols{$1} ]/g;