From: ""Chris Charley""


From: "Bobby" Newsgroups: perl.beginners


Subject: rand()


Hi all,

How do I use the rand function to print out more than one random number for an array? In the example script below i have an array @nums with a list of numbers; how do i print out more than one random numbers from that list (@nums)? Thanks.

You can use 'shuffle' from List::Util.

#!/usr/bin/perl
use strict;
use warnings;
use List::Util qw/ shuffle /;

my $max = 3;
my @nums = ("10000","10002","10004","10005","10006","140000","1500000");
my @winner = (shuffle @nums)[0 .. $max - 1];

print "@winner";

'shuffle' does what its name says - shuffles the list items. You will get no duplicates.

Chris

Just to clarify a possible misunderstanding. There will be no duplicates only if there are no duplicates in the original array. 'shuffle' doesn't filter out duplicates - it just shuffles the list.

Chris


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to