Thanks Rob,

Just what I needed to get on with my script.

Cheers,
Jakob

> -----Oprindelig meddelelse-----
> Fra: Rob Dixon [mailto:[EMAIL PROTECTED]
> Sendt: 1. juli 2003 21:19
> Til: [EMAIL PROTECTED]
> Emne: Re: Comparing lines
> 
> 
> Jakob Kofoed wrote:
> > Hi all,
> >
> > I have a file with several columns of numbers, that I want 
> to make sure that
> > they are either increasing or are equal to the previously 
> line - if not then
> > give a warning.
> >
> > E.g.
> >
> > my input file:
> >
> > 1   2
> > 3   3
> > 5   4
> > 7   5
> > 6   6  << Error in column one
> > 8   7
> >
> > I tried to do a foreach loop but could not figure out how 
> to compare e.g.
> > column 1/line 1 with column 1/line 2.
> >
> > If anybody have a suggestion how I get started on this I 
> would greatly
> > appreciate it - thanks.
> 
> Hi Jakob.
> 
> How about this. @prev keeps a copy of the previous line's list
> of values. Unfortunately in Perl you can't iterate over two arrays in
> parallel, so there's a 'foreach' on the @prev array together with
> a count $i which keeps track of the current array index.
> 
> HTH,
> 
> Rob
> 
> 
> 
>   use strict;
>   use warnings;
> 
>   my @prev;
> 
>   while (<DATA>) {
> 
>     my @vals = /\d+/g;
> 
>     print "[EMAIL PROTECTED]";
> 
>     my $i = 0;
>     foreach my $p (@prev) {
>       next if $vals[$i++] >= $p;
>       print "  << Error in column $i";
>       last;
>     }
> 
>     @prev = @vals;
>   }
> 
>   __DATA__
>   1   2
>   3   3
>   5   4
>   7   5
>   6   6
>   8   7
> 
> OUTPUT
> 
>   1 2
>   3 3
>   5 4
>   7 5
>   6 6  << Error in column 1
>   8 7
> 
> 
> 
> 
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to