print start_from (...); print table (...); s/*[\/\\](.*)/$1/ for @files; while (@files >= 4) { print Tr ({...}, map {td (submit (-name => 'file', -value => $_))} splice @files => 0, 4); } print Tr ({...}, (map {td (submit (-name => 'file', -value => $_))} @files), map {td ()} 1 .. (4 - @files)) if @files