in reply to (GOLF) Randomizing lines

45 (oops, didn't score according to the rules the first time, thanks CheeseLord) after some usual compression.
123456789 123456789 123456789 123456789 12345 perl -e'@l=<>;print splice@l,rand@l,1while@l'
UPDATE
Does anyone have any ideas why I get a segmentation fault from the following?
perl -e'print splice@l,rand@l,1for@l=<>'

Replies are listed 'Best First'.
(MeowChow) Re2: (GOLF) Randomizing lines
by MeowChow (Vicar) on Jul 26, 2001 at 23:47 UTC
    Your segfaults are probably related to the bug I noted in Segfaulty. Namely, the for loop is iterating over the aliased values of @l, which you are deleting during the course of the loop. Not very nice :)

    Thus it works at 43 chars, if you do:

    perl -e'print splice@l,rand@l,1for@m=@l=<>' t.txt
       MeowChow                                   
                   s aamecha.s a..a\u$&owag.print
Re: Re (tilly) 1: (GOLF) Randomizing lines
by Cirollo (Friar) on Jul 26, 2001 at 18:19 UTC
    That's really odd. I tried running it in the debugger:
    $ perl -d -e'print splice@l,rand@l,1for@l=<>' < test Default die handler restored. Loading DB routines from perl5db.pl version 1.07 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(-e:1): print splice@l,rand@l,1for@l=<> DB<1> c 4 5 1 3 Attempt to free unreferenced scalar at -e line 1, <> line 5. Bus error (core dumped)
    Another time (while stepping through with 'n'), I got this error:
    Attempt to free unreferenced scalar at /usr/local/perl/lib/5.6/perl5db +.pl line 1447, <IN> line 7.
    Yet another time, I stepped through with 'n' and it worked fine.

    Potentially a bug in perl?