Whilst we're on the subject of wierd behaviour, can any explain what's going on here?
perl -e"print join( '|', %{{ }} = (1)x100 );"
Specifically, where do the undefined values come from?
Update: With the help of those below and some twiddling of my own, I arrived at this.
P:\test>perl -le"print join'.', %h = (1)x$_ for 1..20;" 1 1.1 1..1 1..1.1 1..1..1 1.1.1..1.1 1..1..1..1 1..1.1.1..1.1 1..1..1..1..1 1.1.1..1.1.1..1.1 1..1..1..1..1..1 1..1.1.1..1.1.1..1.1 1..1..1..1..1..1..1 1.1.1..1.1.1..1.1.1..1.1 1..1..1..1..1..1..1..1 1..1.1.1..1.1.1..1.1.1..1.1 1..1..1..1..1..1..1..1..1 1.1.1..1.1.1..1.1.1..1.1.1..1.1 1..1..1..1..1..1..1..1..1..1 1..1.1.1..1.1.1..1.1.1..1.1.1..1.1
Which doesn't explain anything, but it removes the ofuscation a little, and clarifies the bizareness.
By now I'm assuming this is a bug, and I'll report it if noone disagree's by later today.
I really can't wait to see the set of circumstances that lead to such a variable set of outputs. The offending piece of code should be immortalizes on a t-shirt, along with the name of which ever clever person tracks it down.
update (broquaint): title change (was Erm?)
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |