in reply to Re: Split file based on field
in thread Split file based on field
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.
|
|---|