NAME
Data::Random - Perl module to generate random data
SYNOPSIS
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
);
$file
rand_image(
bgcolor
=> [0, 0, 0] );
close
(
$file
);
DESCRIPTION
A module used to generate random data. Useful mostly for test programs.
METHODS
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 ]).
VERSION
0.12
AUTHOR
Originally written by: Adekunle Olonoh
Currently maintained by: Buddy Burden (barefoot@cpan.org), starting with version 0.06
CREDITS
Hiroki Chalfant
David Sarno
Michiel Beijen
COPYRIGHT
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.