use Tie::File; sub vpenv { my $file = shift; tie my @stuff, 'Tie::File', $file or die "Unable to tie $file: $!"; $stuff[0]="setenv DSCUSTOMER $db\n"; $stuff[1]="setenv DSSITENO $sno\n"; $stuff[2]="setenv DSCUSTID $sid\n"; untie @stuff; } sub vpdb { my $file = shift; tie my @thing, 'Tie::File', $file or die "Unable to tie $file: $!"; $thing[0]=".ARG DATABASE $db\n"; untie @thing; } vpenv("$location/$dir/$site/$vpfile"); vpdb("$location/$dir/$site/$vpdir/$vpdata");