Documentation for perl's rand() function: http://perldoc.perl.org/functions/rand.html
Pass an upper limit as an argument to the rand() function.
Input:
my $upper_limit = 100;
my $random = rand($upper_limit);
print $random . "\n";
Output:
A random floating-point number, like...
45.8733038119139
Cast your random floating-point number as an int.
Input:
my $range = 10;
# create random integer as low as 0 and as high as 9
my $random = int(rand($range)); # max value is up to but not equal to $range
print $random . "\n";
Output:
A random integer, like...
0
See also the perldoc for rand.
my @letters = ( 'a' .. 'z' ); # English ascii-bet
print $letters[ rand @letters ] for 1 .. 5; # prints 5 letters at random
How it works
rand EXPR
expects a scalar value, so @letters
is evaluated in scalar contextrand 26
returns a random fractional number in the interval 0 ≤ VALUE < 26
. (It can never be 26
)$letters[rand @letters]
≡ $letters[int rand @letters]
$array[rand @array]
returns $array[0]
, $array[$#array]
or an element in between(The same principle applies to hashes)
my %colors = ( red => 0xFF0000,
green => 0x00FF00,
blue => 0x0000FF,
);
print ( values %colors )[rand keys %colors];