Hello monks,

I'm processing public budget data with Rakudo v2023.04 (Raku v6.d) using the module Text::CSV 0.012.

The input file has 150000 lines (records) and I try to load just one column (field) with:

my Str $data = slurp $file_name; my $fh = IO::String.new($data); my $csv = Text::CSV.new(';', '"'); my @column = $csv.getline_all($fh).map( *[$target_col] );

When executing I get:

> raku clean_class.raku PPP_DSP_2002-2021.csv Flattened array has 150000 elements, but argument lists are limited to + 65535 in method print at C:\workbench\budget\lib\IO\String.pm6 (IO::String +) line 40 in method new at C:\workbench\budget\lib\IO\String.pm6 (IO::String) +line 26 in method new at C:\workbench\budget\lib\IO\String.pm6 (IO::String) +line 13 in sub MAIN at clean_class.raku line 77 in block at 'SETTING::'src/core.c/Main.pm6 line 421 in sub RUN-MAIN at 'SETTING::'src/core.c/Main.pm6 line 416 in block <unit> at clean_class.raku line 15

As a workaround, I substituted line 40 of IO::String

@!content.push: |@x;

with

@!content.push: $_ for @x;

and the script runs without complaints.

I'm wondering if some other solution could be feasible?

Thanks and greetings.


In reply to [Raku] Limited argument list issue in IO::String (Text::CSV) by fishy

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.