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]