Data::Random − Perl module to generate random data
use
Data::Random qw(:all);
my @random_words = rand_words( size => 10 );
my @random_chars = rand_chars( set => 'all', min => 5,
max => 8 );
my $string = rand_chars( set => 'all', min => 5, max
=> 8 );
my @random_set = rand_set( set => \@set, size => 5 );
my $random_enum = rand_enum( set => \@set );
my $random_enum = rand_enum( \@set ); # shortcut
my $random_date = rand_date();
my $random_time = rand_time();
my $random_datetime = rand_datetime();
open(my $file, ">", "rand_image.png")
or die $!;
binmode($file);
print $file rand_image( bgcolor => [0, 0, 0] );
close($file);
A module used to generate random data. Useful mostly for test programs.
rand_words()
This returns a list of random words given a wordlist. See
below for possible parameters.
• |
wordlist − the path to the wordlist file. A lot of systems have one at /usr/dict/words. You can also optionally supply a Data::Random::WordList object to keep a persistent wordlist. The default is the wordlist distributed with this module. | ||
• |
min − the minimum number of words to return. The default is 1. | ||
• |
max − the maximum number of words to return. The default is 1. | ||
• |
size − the number of words to return. The default is 1. If you supply a value for ’size’, then ’min’ and ’max’ aren’t paid attention to. | ||
• |
shuffle − whether or not the words should be randomly shuffled. Set this to 0 if you don’t want the words shuffled. The default is 1. Random::Data::WordList returns words in the order that they’re viewed in the word list file, so shuffling will make sure that the results are a little more random. |
rand_chars()
When called in a list context this returns a list of random
characters given a set of characters. In a scalar context it
returns a string of random characters. See below for
possible parameters.
• |
set − the set of characters to be used. This value can be either a reference to an array of strings, or one of the following: |
alpha −
alphabetic characters: a−z, A−Z
upperalpha − upper case alphabetic characters:
A−Z
loweralpha − lower case alphabetic characters:
a−z
numeric − numeric characters: 0−9
alphanumeric − alphanumeric characters: a−z,
A−Z, 0−9
char − non−alphanumeric characters: # ~ ! @ $ %
^ & * ( ) _ + = − { } | : " < > ? / . '
; ] [ \ `
misc − same as 'char'
all − all of the above
• |
min − the minimum number of characters to return. The default is 0. | ||
• |
max − the maximum number of characters to return. The default is the size of the set. | ||
• |
size − the number of characters to return. The default is 1. If you supply a value for ’size’, then ’min’ and ’max’ aren’t paid attention to. | ||
• |
shuffle − whether or not the characters should be randomly shuffled. Set this to 0 if you want the characters to stay in the order received. The default is 1. |
rand_set()
This returns a random set of elements given an initial set.
See below for possible parameters.
• |
set − the set of strings to be used. This should be a reference to an array of strings. | ||
• |
min − the minimum number of strings to return. The default is 0. | ||
• |
max − the maximum number of strings to return. The default is the size of the set. | ||
• |
size − the number of strings to return. The default is 1. If you supply a value for ’size’, then ’min’ and ’max’ aren’t paid attention to. | ||
• |
shuffle − whether or not the strings should be randomly shuffled. Set this to 0 if you want the strings to stay in the order received. The default is 1. |
rand_enum()
This returns a random element given an initial set. See
below for possible parameters.
• |
set − the set of strings to be used. This should be a reference to an array of strings. The "set" key will be assumed if the array reference is passed as the only argument. |
rand_date()
This returns a random date in the form
"YYYY-MM-DD". 2−digit years are not
currently supported. Efforts are made to make sure
you’re returned a truly valid date--ie, you’ll
never be returned the date February 31st. See the options
below to find out how to control the date range. Here are a
few examples:
# returns a
date somewhere in between the current date, and one year
from the current date
$date = rand_date();
# returns a date somewhere in between September 21, 1978 and
September 21, 1979
$date = rand_date( min => '1978−9−21' );
# returns a date somewhere in between September 21, 1978 and
the current date
$date = rand_date( min => '1978−9−21', max
=> 'now' );
# returns a date somewhere in between the current date and
September 21, 2008
$date = rand_date( min => 'now', max =>
'2008−9−21' );
See below for possible parameters.
• |
min − the minimum date to be returned. It should be in the form "YYYY-MM-DD" or you can alternatively use the string "now" to represent the current date. The default is the current date; | ||
• |
max − the maximum date to be returned. It should be in the form "YYYY-MM-DD" or you can alternatively use the string "now" to represent the current date. The default is one year from the minimum date; |
rand_time()
This returns a random time in the form "
HH:MM:SS". 24 hour times are supported.
See the options below to find out how to control the time
range. Here are a few examples:
# returns a
random 24−hr time (between 00:00:00 and 23:59:59)
$time = rand_time();
# returns a time somewhere in between 04:00:00 and the end
of the day
$time = rand_time( min => '4:0:0' );
# returns a time somewhere in between 8:00:00 and the
current time (if it's after 8:00)
$time = rand_time( min => '12:00:00', max => 'now' );
# returns a date somewhere in between the current time and
the end of the day
$time = rand_time( min => 'now' );
See below for possible parameters.
• |
min − the minimum time to be returned. It should be in the form " HH:MM:SS" or you can alternatively use the string "now" to represent the current time. The default is 00:00:00; | ||
• |
max − the maximum time to be returned. It should be in the form " HH:MM:SS" or you can alternatively use the string "now" to represent the current time. The default is 23:59:59; |
rand_datetime()
This returns a random date and time in the form
"YYYY-MM-DD HH:MM:SS". See the
options below to find out how to control the date/time
range. Here are a few examples:
# returns a
date somewhere in between the current date/time, and one
year from the current date/time
$datetime = rand_datetime();
# returns a date somewhere in between 4:00 September 21,
1978 and 4:00 September 21, 1979
$datetime = rand_datetime( min => '1978−9−21
4:0:0' );
# returns a date somewhere in between 4:00 September 21,
1978 and the current date
$datetime = rand_datetime( min => '1978−9−21
4:0:0', max => 'now' );
# returns a date somewhere in between the current date/time
and the end of the day September 21, 2008
$datetime = rand_datetime( min => 'now', max =>
'2008−9−21 23:59:59' );
See below for possible parameters.
• |
min − the minimum date/time to be returned. It should be in the form "YYYY-MM-DD HH:MM:SS" or you can alternatively use the string "now" to represent the current date/time. The default is the current date/time; | ||
• |
max − the maximum date/time to be returned. It should be in the form "YYYY-MM-DD HH:MM:SS" or you can alternatively use the string "now" to represent the current date/time. The default is one year from the minimum date/time; |
rand_image()
This returns a random image. Currently only
PNG images are supported. See below for
possible parameters.
• |
minwidth − the minimum width of the image. The default is 1. | ||
• |
maxwidth − the maximum width of the image. The default is 100. | ||
• |
width − the width of the image. If you supply a value for ’width’, then ’minwidth’ and ’maxwidth’ aren’t paid attention to. | ||
• |
minheight − the minimum height of the image. The default is 1. | ||
• |
maxheight − the maximum height of the image. The default is 100. | ||
• |
height − the height of the image. If you supply a value for ’width’, then ’minwidth’ and ’maxwidth’ aren’t paid attention to. | ||
• |
minpixels − the minimum number of random pixels to display on the image. The default is 0. | ||
• |
maxpixels − the maximum number of random pixels to display on the image. The default is width * height. | ||
• |
pixels − the number of random pixels to display on the image. If you supply a value for ’pixels’, then ’minpixels’ and ’maxpixels’ aren’t paid attention to. | ||
• |
bgcolor − the background color of the image. The value must be a reference to an RGB array where each element is an integer between 0 and 255 (eg. [ 55, 120, 255 ]). | ||
• |
fgcolor − the foreground color of the image. The value must be a reference to an RGB array where each element is an integer between 0 and 255 (eg. [ 55, 120, 255 ]). |
0.12
Originally written by: Adekunle Olonoh
Currently maintained by: Buddy Burden (barefoot@cpan.org), starting with version 0.06
Hiroki Chalfant
David Sarno
Michiel Beijen
Copyright (c) 2000−2011 Adekunle Olonoh. Copyright (c) 2011−2015 Buddy Burden. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Data::Random::WordList