Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: How do I shuffle an array?

by perlplayer (Sexton)
on Mar 05, 2008 at 13:28 UTC ( [id://672162]=note: print w/replies, xml ) Need Help??


in reply to How do I shuffle an array?

i have solved the issue in my own way i am newbie so if there is any inefficiency in my code please point out...as "there is more than one way to do it"
my @array=('one','two','three','four','five','six'); &shuffle(\@array); sub shuffle{ my $array=shift; my $max=@$array; #print $max; foreach(@$array) { my $random=int rand($max+1); unless($random eq $max) { @$array[$random,$max]=@$array[$max,$random]; $max--; } } } print "@array\n";
** i also have a querry if i omit the $max-- what wrong will happen

Replies are listed 'Best First'.
Re: Answer: How do I shuffle an array?
by moritz (Cardinal) on Mar 05, 2008 at 13:33 UTC
    my $random=int rand($max+1); unless($random eq $max)

    The correct way to compare numbers is ==, not eq.

    And when you want to exclude $max from the range of random numbers, write my $random = int rand($max); in the first place.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://672162]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2024-04-26 04:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found