coldy:

You can read fixed-size chunks from your file handle. Then do your splitting similar to what you're doing now. Just set your input record size like so:

local $/ = \500;

Then you can chop it up into approximately 80 character lines breaking on the commas like you're doing now, and when you need more text (say, when you have less than 100 characters left, read another chunk and append it to your text buffer). Here's an example of how you might approach it. (Note: rather than worry about 80 character lines, I'm just writing 10 values on each line.)

#!/usr/bin/perl -w use strict; use warnings; local $/ = \500; open IN, '<', 'bigfile.csv' or die $!; my @values; while (my $line = <IN>) { push @values, split /,/, $line; while (@values > 10) { print join(',',@values[0..9]), "\n"; @values = @values[10..@values-10]; } } close IN or die $!;

...roboticus

UPDATE: D'oh! ikegami's solution looks much better... Ah, well. I guess I need to read Text::Wrap now...


In reply to Re: break up file with no line breaks by roboticus
in thread break up file with no line breaks by coldy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.