Gary Yang wrote:
> Hi,
>  
> I need to get a random number whenever the perl script is called. Each 
> time the random number I got should be different.  I use that number to 
> name generated files, i.e. I want the perl script to generate different 
> file names whenever it is called. Can someone tell me how to get the 
> different random number whenever the perl script is called?

Did you read perlfunc man page under rand and srand ?

Did you look in the FAQs ?

perlfaq4:

   How do I get a random number between X and Y?
     "rand($x)" returns a number such that "0 <= rand($x) < $x". Thus what you
     want to have perl figure out is a random number in the range from 0 to the
     difference between your *X* and *Y*.

     That is, to get a number between 10 and 15, inclusive, you want a random
     number between 0 and 5 that you can then add to 10.

         my $number = 10 + int rand (15-10+1);

     Hence you derive the following simple function to abstract that. It selects
     a random integer between the two given integers (inclusive), For example:
     "random_int_in(50,120)".

        sub random_int_in ($$) {
          my($min, $max) = @_;
           # Assumes that the two arguments are integers themselves!
          return $min if $min == $max;
          ($min, $max) = ($max, $min)  if  $min > $max;
          return $min + int rand(1 + $max - $min);
        }
----------------------

You could also try something like:
        srand (time ^ $$);
to seed the generator before using rand to hopefully make it a little more 
random.
_______________________________________________
Perl-Unix-Users mailing list
Perl-Unix-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to