in reply to Re: Re: foreach problem
in thread foreach problem

Instead of map, you can use an inner for loop. Here, the inner loop adds four td's to an array (@table_cells). It then wraps @table_cells in a table row with Tr:
use File::Basename; # ... while( my @cols= splice @files, 0, 4 ) { my @table_cells; + for( 0..3 ) { push @table_cells => $cols[$_] ? td( submit(-name=>'file', -value=> basename($cols[$_])) ) : td( ' ' ); } + print Tr( {-align=>'center'}, @table_cells ); }
Or, again, use the distributive property of CGI's HTML functions:
while( my @cols= splice @files, 0, 4 ) { my @table_cells; + for( 0..3 ) { push @table_cells => $cols[$_] ? submit(-name=>'file', -value=> basename($cols[$_])) : ' '; } + print Tr( {-align=>'center'}, td(\@table_cells) ); }

--sacked