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/