in reply to fun with $[

In 5.8.8, it behaves as documented. Quote 5.8.8's perlvar:

As of release 5 of Perl, assignment to $[ is treated as a compiler directive [...]. (That's why you can only assign compile-time constants to it.)

In fact, 5.10.0's perlvar still includes that line, so you've uncovered a bug. (Documentation or code bug, I don't know.)