use strict; use warnings; my $header = ; my %handles; while ( ) { my $handle; my $key = substr($_,0,13); # check if file is already open if ( $handles{$key} ) { $handle = $handles{$key}; } else { #if not, open it and store the handle my $name = $key; $name =~ s/://; open $handle, ">$name.txt" or die $!; print $handle $header; $handles{$key} = $handle; } print $handle $_; } __DATA__ Usr1369***12556 06-01-0101:00 1169 06-01-0101:00 2396 06-01-0103:12 1169 06-01-0103:12 2569 06-01-0301:00 1169 06-01-0301:00 2396