use strict; use warnings; my $infile = "filename.txt"; my $outfile = "filename.out"; open my $IN, "<", $infile or die "Could not open file $infile : $!"; open my $OUT, ">", $outfile or die "Could not open file $outfile : $!"; my $step_num = 0; while (<$IN>) { if (/-----------step [\d]\./){ $step_num ++; s/-----------step \d\./-----------step $_\.$step_num/; } print $_ $OUT; } close $IN; close $OUT;