Если функция rand, вызванная без параметров генерит случайное число в интервале от 0 до 1, то логично предположить, что 10*rand возвращает число в диапазоне от 0 до 10. Следующий код это действительно подтверждает:
perl -le 'print 10*rand'
Вроде бы умножение обладает переместительным свойством, но почему тогда скрипт
perl -le 'print rand*10'
всегда выдает число в интервале от 0 до 1, как будто бы умножения на 10 и не было?