in reply to Searching in an array of arrays
use strict; use warnings; my $rows = 5; my @temps = ('mild','warm','very warm','hot','very hot','extremely hot +'); my ($range, $lrange, $start, $c, @data, @results); # Creating nested arrays with data while (<DATA>) { chomp; push @data, [split(/ /)]; } $lrange = -1; for (@data) { $range = getrange(@$_[1]); if ($range == $lrange) { if (++$c == $rows) { push (@results, [$start, @$_[0], $temps[$range]]); $lrange = -1; $c = 0; } } else { $start = @$_[0]; $lrange = $range; $c = 1; } } # Printing results, tab delimited for (@results) { print join("\t", @$_) . "\n"; } sub getrange { return 5 if $_[0] >= 40; return 0 if $_[0] < 20; return int($_[0] / 5 - 3); } __DATA__ 1-1-2004 33.95 2-1-2004 30.34 3-1-2004 31.50 4-1-2004 32.50 5-1-2004 33.50 6-1-2004 90.00 7-1-2004 51.45 8-1-2004 52.56 9-1-2004 56.23 10-1-2004 50.54 11-1-2004 52.43
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Searching in an array of arrays
by perl_seeker (Scribe) on Nov 04, 2004 at 09:55 UTC | |
|
Re^2: Searching in an array of arrays
by perl_seeker (Scribe) on Nov 04, 2004 at 11:45 UTC |