in reply to seeking improvement in my smiple program using regular expression
Personally, I'd use split for something like this...
my $count = 1; while ( <DATA> ) { if ( m/^\^status/ ) { my @f = split; $f[17] = $count++; $_ = join( ' ', @f ) . "\n"; } print; } __DATA__ ^status f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 123 + 123 ^status f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 345 + 123
But you could use a regexp...
s/\d+\s+(\d+)$/$count $1/;
|
|---|