use strict; use warnings; use DBIx::XHTML_Table; my @avengers = ( 'Iron Man', 'Black Panther', 'Thor', 'Black Widow', 'Mockingbird', 'Captain America', 'Quicksilver', 'Vision', 'Falcon', 'Scarlet Witch', 'Wasp', 'Hawkeye', 'Hercules', 'Yellowjacket', ); my $n = 4; my $rows = [map[@avengers[$_..$_+$n-1]], range(0,$#avengers,$n)]; my $headers = [map "row$_",1..$n]; print DBIx::XHTML_Table->new($rows,$headers)->output; # if Python can do this, so can Perl! sub range {grep !($_%$_[2]-$_[0]),$_[0]..$_[1]}