phpman > perldoc > Data::Random

Markdown | JSON | MCP    

NAME
    Data::Random - Perl module to generate random data

SYNOPSIS
      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);

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. On Debian systems one can be found at
        /usr/share/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 AT 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.

SEE ALSO
    Data::Random::WordList

Data::Random
NAME SYNOPSIS DESCRIPTION METHODS VERSION AUTHOR CREDITS COPYRIGHT SEE ALSO

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-13 12:28 @216.73.216.28
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top