in reply to Re: Generating Random Integers
in thread Generating Random Integers

Nice and easy solution IO. Since --OutpostMir-- mentioned he was a beginner a bit of detail might help him understand your answer.

An array can take a non-integer subscript. It just uses the integer part. So you don't need to make it an integer. if you want to make it an integer for other reasons, you could use int() to make it an integer.

Also the rand @array is taking @array in a scalar context. An array in scalar context returns the number of elements. So that rand @array calls rand with the number of element.

In this case, replace $array and @array with the actual name of your array.

=Blue
...you might be eaten by a grue...

Replies are listed 'Best First'.
Re: Re: Re: Generating Random Integers
by $code or die (Deacon) on Jan 03, 2001 at 07:22 UTC
    the rand @array is taking @array in a scalar context. An array in scalar context returns the number of elements

    Doesn't an array in scalar context return the index of the last element? i.e. if @array is a list of 10 values, I0's examples will be the equivalent of $array[rand 9]. rand 9 will effectively produce a random number between 0 and 8. This would mean that the last element in the array would never appear.

    Update: I'm wrong as per tilly's comment below. See my humble-pie-eating act below that one. <half-grin>
      An array in scalar context returns the number of elements in the array.

      As usual, I0 was both concise and correct.

        Drat! I'm tired. confused with $#array. Good night.