#! /usr/bin/perl use strict ; use warnings ; $|++ ; use Tie::File ; my $datafile = 'test_a.dat' ; my $username = 'terry' ; my $req_addr = 'tag@foo.com' ; my ( $name, $domain ) = $req_addr =~ /^([\w.-]+)(@[\w.-]+)$/ ; tie my @virtual, 'Tie::File', $datafile or die $! ; my $row = 0 ; $row++ until $virtual[$row] =~ $domain ; $virtual[$row] .= "\n$req_addr\t$username\n" ; untie @virtual ; __END__