in reply to Loop, but print once.
#!/usr/bin/env perl use warnings; use strict; my $prev_first = 0; my $prev_second = 0; # you need to make use of this too while (<DATA>) { chomp; my ($first, $second, @data) = split /\t/; if ($first == $prev_first) { print " $second @data\n"; } else { print "$first - $second @data\n"; $prev_first = $first; } } __DATA__ 1 300 1_a 30 1_b 20 1 300 2_a 22 2_b 12 1 320 1_a 10 1_b 30 1 320 2_a 32 2_b 22 2 312 1_a 30 1_b 20 2 312 2_a 22 2_b 12 2 310 1_a 31 1_b 20 2 310 2_a 21 2_b 12
This prints:
1 - 300 1_a 30 1_b 20 300 2_a 22 2_b 12 320 1_a 10 1_b 30 320 2_a 32 2_b 22 2 - 312 1_a 30 1_b 20 312 2_a 22 2_b 12 310 1_a 31 1_b 20 310 2_a 21 2_b 12
I used actual tab characters in the __DATA__, not "\" followed by "t".
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Loop, but print once.
by Narveson (Chaplain) on Mar 04, 2008 at 20:00 UTC | |
by ikegami (Patriarch) on Mar 05, 2008 at 07:30 UTC | |
by Narveson (Chaplain) on Mar 07, 2008 at 06:24 UTC | |
by ikegami (Patriarch) on Mar 07, 2008 at 06:47 UTC |