BTW, I suppose Fisher_Yates is good enough, but my own favorite has always been to prepend a random number to the string (default output of rand() is between 0.0 and 0.999...), then sort, then remove the random number.

Not only is it good enough, it's also a lot more efficient and scalable.

The Fisher_Yates algorithm is an inline sort, swapping array elements. Your solution first alters all elements, then sorts it, assigns the result of the sort to an array, after which you remove the string. I have not benchmarked it, but it sounds like a slow procedure - which may still be very useful for small arrays.

my @cols = split(/,/);

That's not CSV parsing. CSV isn't just comma-seperated, the format also supports quoted strings and escaping of quotes with other quotes. See Re (tilly) 1: csv output.

U28geW91IGNhbiBhbGwgcm90MTMgY
W5kIHBhY2soKS4gQnV0IGRvIHlvdS
ByZWNvZ25pc2UgQmFzZTY0IHdoZW4
geW91IHNlZSBpdD8gIC0tIEp1ZXJk


In reply to Re: Re: Randomize CSV word lists by Juerd
in thread Randomize CSV word lists by Grendel2112

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.