package SOMECLASS; sub new { blah blah blah } sub randomturn { my $self = shift @_; my $random = int(rand(2000)); return $random; } 1; package main; use SOMECLASS; my $array; #gen objects for(1..100) { push @$array, SOMECLASS->new(); } foreach (@$array) { #build some data structure to store 1) drawn number 2) object reference 3) turn order ? #generate turn order, use recursive function to redraw until there is no tie $_->randomturn(); } #Finally... #sort data structure & foreach(@$turnorder) { # @$turnorder or whatever data structure... $_->dosomething(); }