Although both the subject and the description of the problem may suggest that he's after something like the code you suggest, I don't think he really wants to split his input into several different files. I think it's more reasonable to assume he's after something along the lines of:
#!/usr/bin/perl use strict; use warnings; $\ = $, = "\n"; chomp(my $head=<>); my ($last,@buffer); while (<>) { chomp; my $time = (split)[0]; if ( $time eq ($last ||= $time) ) { push @buffer, $_; } else { print $head, @buffer; ($last,@buffer)=($time,$_); } } print $head, @buffer; __END__
Note that this assumes the input is ordered, which seems reasonable too, if you read the description carefully. Of course I do not claim it to be the cleanest or smartest way to do it, either.
In reply to Re^2: Split file based on field
by blazar
in thread Split file based on field
by calv1n
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |