#!/usr/local/bin/perl use strict; # always use strict use Carp; my @file; my $file; # instaed of srand simply chose randomly from the number of your sort methods my $sorttype = int(rand(2)); my @methods = ("sort","reverse sort"); # better leave output to cgi.pm I'd suggest print "Content-type: text/html\n\n"; # f.w.u. ?? my $n=1; # your dir including path to it relative to this scripts path my $dir = "../random/"; #read the dir and put all files to a list # even if above sample using glob looks also interesting :-) opendir DIR, $dir || die "blah!"; my @allfiles = readdir DIR; close DIR; # remove those files from list that don't seem to be html my @randomlist = grep /.?\.(s||p)?html?/i, @allfiles; # here specify your sort method for the remaining files my $do = $methods[$sorttype]." ".'@randomlist;'; @randomlist = eval($do); #start output foreach $file (@randomlist) { my $tmp = $dir.$file; open (FILE, "<$tmp")|| die "failed"; @file = ; print (@file); close(FILE) } #thats it