open OLD, $file or die "Can't open $file:$!\n"; open NEW, ">$file.new" or die "Can't open temp file $file.new: $!\n"; my $found =0; while () { if (/^$username\t/) { $found =1; next; # skips to the next line, so won't print # any matching line to the new file } print NEW; # implicit "$_" } if ($found) { rename ($file, "$file.old") or die "Can't back up old $file: $!\n"; rename ("$file.new", $file) or die "Can't rename new $file: $!\n"; } else { print "I didn't find $username!\n"; }