polsum has asked for the wisdom of the Perl Monks concerning the following question:
Hi I have a file with data like this.
-1 2 ereu 1 2 rerer 2 2 rere 3 2 eee 3 2 wwwe 9 2 qqewew 9 2 vvvgf -1 2 wwwew 4 3 wwew -9 3 wwss 6 3 jjuu 7 3 kkii 7 3 ggtyu 8 3 ffder 1 4 rrtrr 1 4 rree
If the values in 2nd column are same, calculate the minimum value in the first column and print corresponding lines. My desired output is;
-1 2 ereu -1 2 wwwew -9 3 wwss 1 4 rrtrr 1 4 rree
I wrote a code like this.
#! usr/bin/perl use warnings; use strict; my @a = <> ; my @b = (); foreach (@a) { push (@b, split(/ /)); } my $i = 0; my $j = 1; my $min = $b[0]; my $x = 0; while ($x++ < 150) { $j = $j+3; $i = $i+3; if ($b[$j] = $b[$j+3]) { if ($min > $b[$i]) { $min = $b[$i] } } } print "$min\n";
But the code ignores the condition if ($b$j = $b$j+3) and prints just the minimum value of first column. My idea was to use a regex involving the minimum value to print the corresponding lines. Obviously I am a newbie to Perl. Can experts help me please? thanks in advance.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Selective Printing of Lines
by ambrus (Abbot) on Sep 16, 2011 at 09:09 UTC | |
|
Re: Selective Printing of Lines
by onelesd (Pilgrim) on Sep 15, 2011 at 22:31 UTC | |
by polsum (Novice) on Sep 16, 2011 at 00:24 UTC | |
by onelesd (Pilgrim) on Sep 16, 2011 at 04:28 UTC | |
|
Re: Selective Printing of Lines
by Kc12349 (Monk) on Sep 15, 2011 at 22:40 UTC | |
by onelesd (Pilgrim) on Sep 15, 2011 at 23:01 UTC | |
|
Re: Selective Printing of Lines
by Anonymous Monk on Sep 15, 2011 at 23:05 UTC |