in reply to how to read in a line containing exponentials
I did the substitution you're after like this: s{ \s+ \S+ \s* \z }{}msx
Here's the test code:
#!perl use 5.12.0; use warnings; my $sought = q{sb1 1.0 142r}; my $last; while (my $line = <DATA>) { chomp $line; if ($line eq $sought) { $last =~ s{ \s+ \S+ \s* \z }{}msx; } say $last if $. > 1; $last = $line; } say $last; __DATA__ pre 2 pre 1 4.62399E+09 2.90871E+09 7.17338E+14 sb1 1.0 142r post 1 post 2
Here's the output:
$ match_exp_prob.pl pre 2 pre 1 4.62399E+09 2.90871E+09 sb1 1.0 142r post 1 post 2
For your code, where I have DATA, you'll want IN and where I have say $last, you'll want print OUT $last, "\n".
-- Ken
|
|---|