in reply to Basic Seek

Editing in the middle of a file either requires creating a copy of the file with the new output and renaming back that over the old copy, or a relatively complex approach to copy the back of the file down X bytes after inserting your string of X bytes. For the first approach, something like this would do:
my $infilename = "/etc/postfix/virtual"; open my $infile, "<", $infilename or die "Can't open $infilename to re +ad: $!\n"; open my $outfile, ">", "$infilename.new" or die "Can't open $infilenam +e.new to write: $!\n"; local $_; while(<$infile>) { print $outfile $_; print $outfile "$user\@$dom\t$user\n" if /^\Q$dom\E\b/; } close $infile; close $outfile; rename("$infilename.new", $infilename) or die "Couldn't replace $infil +ename with $infilename.new: $!\n";
The simple way to use the other approach would be to use the Tie::File module.

Makeshifts last the longest.