Generating a psuedo random number is common programming task. This tutorial will show you how to this in Perl using the rand() function.
The Rand() Function
The simplest use of rand(), with no parameters ( This is analogous to calling rand(1) ), generates a double precision number between 0 and 1.
#!/usr/bin/perl use strict use warnings; my $rndnum = rand() print $rndnum;
Will give you a result like: 0.186135607379587
Rand() with a Range
You can generate a bigger random number if you call rand($int) where $int is the maximum value you want. For example, to generate a number between 0 and 10 we could use:
#!/usr/bin/perl use strict use warnings; my $rndnum = rand(10) print $rndnum;
This will give a result like: 5.9358180787331.
Alternatively, we could call rand() and multiply by the maximum value:
#!/usr/bin/perl use warnings use strict; my $rndnum = rand() * 10 print $rndnum;
Which returns the result: 1.65611195917339.
Generating a Random Integer
If we want to generate a random integer, to use an array index for example, then we need to use another function to round our double. We have 3 choices: int(), ceil() and floor(). int() will return the integer part of an expression, ceil() will round up to the next integer and floor() will round down.
#!/usr/bin/perl use strict use warnings; my $rndnum = rand(10) print "$rndnum => ". int($rndnum);
Gives us: 4.03471924205409 => 4
Ceil and Round require the POSIX module:
#!/usr/bin/perl use strict use warnings; use POSIX; my $rndnum = rand(10) print "$rndnum => ". ceil($rndnum);
Gives us: 4.03471924205409 =>5


