copy($groups_qfn, $backup_qfn) or die("Can't backup $groups_qfn\n"); tie(my @lines, 'Tie::File', $groups_qfn) or die("can not open $groups_qfn: $!\n"); for (@lines) { if (/^$group:/) { $_ = "$newstring\n"; last; } } untie @lines; #### copy($groups_qfn, $backup_qfn) or die("Can't backup $groups_qfn\n"); open(my $in_fh, '<', $backup_qfn) or die("Can't open $backup_qfn: $!\n"); open(my $out_fh, '>', $groups_qfn) or die("Can't open $groups_qfn: $!\n"); while (<$in_fh>) { if (/^$group:/) { $_ = "$newstring\n"; } print $out_fh $_ }