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?