The rand function may be a bad example, since it's by nature a generator, and you should maybe have to work harder to get a single value out of it. We haven't really said what <$fh> xx 100 should do, for instance. I guess the real question is whether xx supplies a list context to its left argument (and whether rand pays attention to list context). These might produce very different results:
@foo = (rand); @bar = (+rand);
On the other hand, history has rand producing a scalar, so arguably we should stick with that.
One supposes that it's not entirely unreasonable to have rand in list context produce an infinite (lazy) list of random numbers, successively drawn from the generator.
The results of
@foo = *(rand);
(if the syntax is right) in that case would of course be in the 'enough rope to hang yourself' category. But it might be handy to be able to say
my ($rand1, $rand2, $rand3) = (rand)[4..6];
although I'm sure some would argue that this is needlessly obfuscated, and that
my ($rand1, $rand2, $rand3) = (rand, rand, rand);
would be better. Maybe it would.
This random thought was brought to you by the demons of lunchtime idleness.