use strict; use warnings; use Tie::File; use List::Util qw(shuffle); my @file; tie @file, 'Tie::File', 'foo.dat' or die $!; @file = shuffle(@file);