Hmm.. interesting.. Played with a bit, and found that this works:
my %data=map {
+"Player number $_", [ map { 1 + int rand(10) } 1 .. 5 ]
} 1 .. 10;
I'm can't explain why, but hopefully someone will help clarify.. must be related to evaluation order or something like that.
Two side comments .. This does (nearly) the same thing:
my %data=map {
$_ => [ map { 1 + int rand(10) } 1 .. 5 ]
} 1 .. 10;
First change is using
=> instead of a comma -- this makes it more obvious to the reader that you're constructing key-value pairs. Second is just making the key be the player number -- this might be useful to you later in the code, and then you can include the text "Player number" only when you're actually print'ing out the data later.