use Text::CSV; my $wholefile = do { local $/; <> }; my $parser = Text::CSV->new(); my $status = $parser->parse( $wholefile ); my @fields = $parser->fields(); my $columns = 6; # or 10 or 14 while ( @fields ) { my @line_fields = splice @fields, 0, $columns; my $csv = Text::CSV->new(); my $status = $csv->combine( @line_fields ); print $csv->string(); }