#!/usr/bin/perl -w use strict; use CGI qw/:standard/; my $columns = param('cols') || 4; my $offset = 0; # untested my (@dir, @file); push @{ -d ? \@dir : \@file }, a({-href=>$_},$_) for do { opendir my($dh), "." or die "cannot opendir: $!"; sort grep $_ ne '.' && $_ ne '..' && !/~\z/, readdir $dh; }; $_ = "[ $_ ]" for @dir; for (\@file, \@dir) { my @result; push @result, td([map b($_), splice(@$_,0,$columns)]) while @$_; @$_ = @result; } print header(-expires=>'now'), start_html('Directory Listing'), h1('Directory Listing'), table( {-border=>0,-cellpadding=>5,-cellspacing=>5}, map Tr($_), @dir, @file; ), end_html; __END__