use strict; use warnings; my @lines = qx!cat /etc/services!; my @range = '1' .. $#lines; my @blah; push( @blah, $lines[ $#lines - splice( @range, int rand @range, 1 ) ] ) for @range; print $#blah . $/;