Now, does the Perl command below actually affect the <OUTFILE>? I suspect
that it does and that's something that I can't do. The OUTFILE is
something that has to stay as is. Thanks for the suggestion. Let me know
if I'm wrong about that destruction of the OUTFILE.
Brent
>
> How about something like this?
>
> # Get rid of all the lines up till the Nitrogen ones start:
>
> do {
> $discard_line = <OUTFILE>;
> } until ($line =~ /Log 10 Mean Ionisation/)
>
> # Then, process lines until no more Nitrogens:
>
> while (<OUTFILE>) #Current line becomes the variable $_
> {
> break unless (/Nitrogen/); #if no arguments, matches on $_
> @values = split; #splits intelligently on whitespace, on $_
> # Then process the current array . . .
> }
>
>
> This also saves you time on pattern matches . . .
> Also, the array knows its own length if there will be a varying
> number of parameters.
>
>
> Okay, bye.
>
>
>
>
> On Tue, 5 Jun 2001, Brent Buckalew wrote:
>
> > Hello all,
> >
> > This is similar to the problem I had before but the table that I'm reading
> > from is a little bit different. We'll use the nitrogen as an example
> > again.
> >
> > IN the test table there are four entires for nitrogen. Here they are.
> >
> > Nitrogen 0.00e+00 1.31e-02 9.86e-01 5.96e-04 0.00e+00 0.00e+00
> > Nitrogen 9.99e-01 1.48e-03 1.59e-12 0.00e+00 0.00e+00 0.00e+00
> > Nitrogen -30.000 -1.884 -0.006 -3.225
> > Nitrogen 3.723 4.007 4.007 4.007
> >
> > The text that I'd like is the row of all negative numbers. Now, the perl
> > command that I'm using to get this is the following:
> >
> > while(<OUTFILE>){
> >
> > if
> > (/(Nitrogen)\s+(-\d+\.\d+)\s+(-\d+\.\d+)\s+(-\d+\.\d+)\s+(-\d+\.\d+)\s+(-\d+\.\d
> > +)/)
> > {$name = $1; $nitrogen1 = $2; $nitrogen2 =$3; $nitrogen3 = $4; $nitrogen4
> > = $5; $nitrogen5 = $6;}
> >
> > }
> >
> > However, I believe this is choking when it gets to the first line that has
> > nitrogen in it. It doesn't know what to do with the e's. What happens is
> > that the material that I want never gets assigned to the variables. I've
> > tested this by placing in the following print command.
> >
> > print COMPFILE "HEY, $nitrogen1, $nitrogen2, $nitrogen3, $nitrogen4,
> > $nitrogen5 \n";
> >
> > Now, there is a key word which exists before getting to the desired line
> > of Nitrogen and that's the following:
> >
> > Log10 Mean Ionisation
> >
> > So, is there a way of using this text in a while statement or something
> > like that to get what I need? Or can I change the while statement
> > above to get just the nitrogen line with just negative numbers? Thanks
> > for your help.
> >
> > Brent
> >
> >
>
>