in reply to how to substitute '@' in line

Are you substituting @ to /@ or separating the id and domain name. This might give you some hints:

my $line = 'abc.xyz@lmnop.com'; print $line,"\n"; $line=~s/($1)@($2)/$1\t$2/g; print "\n line is $line";